gpt4 book ai didi

ios - iOS AddressBook 框架设计背后的基本原理是什么?

转载 作者:行者123 更新时间:2023-11-29 11:11:26 25 4
gpt4 key购买 nike

我正在阅读 how to work with the iOS AddressBook 上的文档.虽然到目前为止我了解它的一般机制,但我很难理解这个框架特别是如何构建背后的基本原理。我刚刚完成我的第二个应用程序,所以虽然我已经看过几个 iOS 框架,但我并没有那么有经验。这个框架与我目前所见的完全不同,这让我很困惑。

我敢肯定 Apple 的工程师有他们这样做的理由,但我问这个问题是因为我认为了解或至少尝试了解其背后的思维过程非常有值(value)。

这是从 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 API;其他人有一个 C API。比如Core Foundation全是C,而Cocoa和Cocoa Touch都是Objective-C。

我们都不知道为什么 Apple 选择专门为 AddressBook 编写 C API 而不是 Objective-C API,但有人可能会猜测他们需要从较低级别访问地址簿中的数据。例如,处理来电的软件组件可能非常低级(至少与第三方应用程序相比)并且可能需要 C API。

关于ios - iOS AddressBook 框架设计背后的基本原理是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11419652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com