gpt4 book ai didi

iphone - 在 iPhone 通讯录中使用查找电话号码时意外崩溃

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:57:57 27 4
gpt4 key购买 nike

我使用以下代码得到了意想不到的结果:

ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFIndex nPeople = ABAddressBookGetPersonCount(addressBook);

NSLog (@"npeople = %d = %d", nPeople, CFArrayGetCount(people));
for (CFIndex i = 0; i < nPeople; i++)
{
ABRecordRef record = CFArrayGetValueAtIndex(people,i);
ABMultiValueRef numbers = ABRecordCopyValue(record, kABPersonPhoneProperty);
CFIndex count = ABMultiValueGetCount(numbers);
NSLog (@"%d %d", i, count);
}

我从来没有到达第二个 NSLog,它在调用 ABMultiValueGetCount 时崩溃:

: * -[NSCFString count]: 无法识别的选择器发送到实例 0x383e72f4: * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“*** -[NSCFString count]: 无法识别的选择器发送到实例 0x383e72f4”

简而言之,它的行为就好像我的“numbers”变量是一个 NSString。虽然上面的代码是我自己写的,但在网络上的许多示例中都可以找到相同的代码。这里有人发现它有什么问题吗?

哦,还有:它只在 Release模式下崩溃(在 Debug模式下,一切正常)。

最佳答案

我认为您应该首先检查 CFArrayGetValueAtIndex() 和 ABRecordCopyValue() 的返回值,以确保您拥有真实值,而不是 NULL。

关于iphone - 在 iPhone 通讯录中使用查找电话号码时意外崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2967422/

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