我正在閱讀how to work with the iOS AddressBook上的文檔。雖然到目前爲止,我理解它的一般機制,但我無法理解特別是如何構建此框架背後的基本原理。我剛剛完成我的第二個應用程序,所以當我看到一些我沒有經歷過的iOS框架時。這個框架與我目前看到的完全不同,完全令我困惑。iOS AddressBook框架設計的基本原理是什麼?
我相信蘋果的工程師們有理由按照他們的方式來做這件事,但我問的是因爲我認爲理解或者至少試圖理解它背後的思考過程是非常有價值的。
這是記錄在案的方式從通訊錄記錄得到一個字符串值:
NSString* name = (__bridge_transfer NSString*)ABRecordCopyValue(person, kABPersonFirstNameProperty);
這是記錄在案的方式得到一個接觸的價值,在這種情況下,電話號碼,如果有的話:
ABMultiValueRef phoneNumbers = ABRecordCopyValue(person, kABPersonPhoneProperty);
最後算你的電話號碼如下:
ABMultiValueGetCount(phoneNumbers)
我的問題是...
怎麼樣ABRecordCopyValue()
,ABMultiValueGetCount()
,後面所有這些小功能的基本原理等,與其他框架的工作時,是完全不同的。我的意思是,爲什麼使用AddressBook看起來不像這樣?
NSAddressBookContact *person = [[NSAddressBookContact alloc] initWithRecordReference:myRecord];
NSString *name = person.name;
NSLog(@"Phone number count: %i", [person.phoneNumbers count]);
不知道。但其他人也認爲是相同的,並編寫了Objective-C包裝器。請參閱:http://stackoverflow.com/q/3338542/558933 – 2012-07-10 18:40:10