iOS AddressBook の操作方法に関するドキュメントを読んでいます。これまでのところ、その一般的なメカニズムは理解していますが、特にこのフレームワークがどのように構築されているかの背後にある理論的根拠を理解するのに苦労しています. 私は 2 つ目のアプリを完成させたばかりなので、いくつかの iOS フレームワークを見てきましたが、それほど経験がありません。このフレームワークがこれまで見てきたものとどう違うのか、完全に困惑しています。
Apple のエンジニアには、彼らが行った方法でこれを行う理由があったと確信していますが、その背後にある思考プロセスを理解すること、または少なくとも理解しようとすることは非常に価値があると思うので、私は尋ねています.
これは、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]);