gpt4 book ai didi

ios - ABAddressBook API 在大量使用该应用程序后停止工作?

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

我正在开发一个应用程序,它使用 ABAddressBook API 列出用户地址簿中的联系人。当用户大量使用该应用程序(进出 View Controller )时,ABAddressBook API 突然停止响应并抛出一条错误消息。

AB: Could not compile statement for query (ABCCopyArrayOfAllInstancesOfClassInSourceMatchingProperties): SELECT ROWID, Name, ExternalIdentifier, Type, ConstraintsPath, ExternalModificationTag, ExternalSyncTag, AccountID, Enabled, SyncData, MeIdentifier, Capabilities FROM ABStore WHERE Enabled = ?;

此外,在抛出此错误并且用户尝试导航到 nib 驱动的 View Controller 后,应用程序崩溃并显示以下错误消息:

* Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle (loaded)' with name 'Sync''

这两个错误仅在广泛使用后才会发生,这让我相信这是某种内存问题。我注意到内存调试功能在整个使用应用程序的过程中内存不断累积,这似乎不正常,但该应用程序使用的是 ARC,这意味着在内存管理方面没有太多可以更改的地方。如果能进一步了解这个问题的根源以及解决方法,我将不胜感激。

最佳答案

在我使用地址簿 API 的三个应用程序中,我多次遇到这个问题。我通常尝试修复它的方法是检查每次使用它时创建/保存 ABAddressBookRef 是否有错误。这个问题也遍布谷歌。

为了解决这个问题,您需要获得地址簿的权限。看来你已经这样做了,否则什么都行不通,只是为了检查你的代码,看看 Programmatically Request Access to Contacts .

第二个错误可能与第一个错误有关 - 也就是说,如果您可以摆脱第一个错误,第二个错误就会消失。最好的解决方案是尽可能少地调用地址簿——也许每次应用程序加载一次?否则,此错误将不断出现。您调用 ABAddressBookCreateWithOptions 的次数越多,就越有可能看到错误。

希望这足以让您避免这些错误的发生。

关于ios - ABAddressBook API 在大量使用该应用程序后停止工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22391078/

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