質問編集履歴

1

Objective-C と swift のコードを双方載せました

2015/04/03 03:18

投稿

harima
harima

スコア17

test CHANGED
File without changes
test CHANGED
@@ -2,18 +2,68 @@
2
2
 
3
3
 
4
4
 
5
- let records : NSArray = ABAddressBookCopyArrayOfAllPeople(book).takenUnretainedValue()
6
-
7
- var peopleMutable : CFMutableArrayRef = CFArrayCreateMutableCopy(kCFAllocatorDeFault,
8
-
9
- CFArrayGetCount(records), records)
5
+ Objective-Cの場合は下記方法で名前でソートできていたのですが、
10
-
11
- CFArraySortValues(....)
12
6
 
13
7
 
14
8
 
15
- とすれば、良いと思うのですが、CFArraySortValuesの中が分かりません。
9
+ ABAddressBookRef book = ABAddressBookCreateWithOptions(NULL, NULL);
16
10
 
17
- 一度Object-Cで作ったときはできたのですが、少し変わっているようなので頭を抱えています。
18
11
 
12
+
13
+ CFArrayRef records = ABAddressBookCopyArrayOfAllPeople(book);
14
+
15
+
16
+
17
+ CFMutableArrayRef peopleMutable = CFArrayCreateMutableCopy(kCFAllocatorDefault,
18
+
19
+ CFArrayGetCount(records), records);
20
+
21
+
22
+
23
+ CFArraySortValues(peopleMutable, CFRangeMake(0, CFArrayGetCount(peopleMutable)),
24
+
25
+ (CFComparatorFunction)ABPersonComparePeopleByName, (void*)ABPersonGetSortOrdering());
26
+
27
+
28
+
29
+
30
+
31
+
32
+
33
+ 同様にswiftで下記のように記述するとエラーが出ます。
34
+
35
+
36
+
37
+ var book : ABAddressBook = ABAddressBookCreateWithOptions(nil, nil).takeUnretainedValue()
38
+
39
+
40
+
41
+ let records : NSArray = ABAddressBookCopyArrayOfAllPeople(book).takeUnretainedValue()
42
+
43
+
44
+
45
+ var peopleMutable : CFMutableArray = CFArrayCreateMutableCopy(kCFAllocatorDefault,
46
+
47
+ CFArrayGetCount(records), records)
48
+
49
+
50
+
51
+ let loc : CFIndex = 0
52
+
53
+
54
+
55
+ var len : CFIndex = CFArrayGetCount(peopleMutable)
56
+
57
+
58
+
59
+ CFArraySortValues(peopleMutable, CFRangeMake(loc, len),
60
+
61
+ CFComparatorFunction : ABPersonComparePeopleByName , ABPersonGetSortOrdering() )
62
+
63
+
64
+
65
+ CFArraySortValuesの記述が悪いことは分かっているのですが、どこを直したら良いか分かりません。
66
+
67
+
68
+
19
- 宜しお願致します
69
+ どなたかご教授ださい。