gpt4 book ai didi

ios - NSInvalidArgument 异常 - 随机对象接收 didEnterBackground

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

每次用户在我的应用程序处于事件状态时点击主页按钮时,我都会收到以下异常。小警告 - 下面的示例异常引用了 NSCFString。但是,发送此消息并因此导致异常的对象类型是完全随机的。它可以是 NSDataOS_dispatch_queue_specific_queue

[__NSCFString didEnterBackground:]: unrecognized selector sent to instance 0x155344c0 * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString didEnterBackground:]: unrecognized selector sent to instance 0x155344c0

每次应用程序退出事件时都会发生,但接收消息的对象永远不会相同。

我认为这是某种内存问题,但我无法找到它。主要是因为我的代码中没有任何内容直接发送/接收此消息,或注册接收 UIApplicationWillResignActiveNotification。此外,我的 appDelegate 中没有任何 applicationDidEnterBackground:application 方法。

有人见过这种行为吗?如果是这样,最好的调试方法是什么?或者换一种方式,哪些类型的对象会自动发送我显然管理不善的 didEnterBackground 消息?

最佳答案

听起来你有一个僵尸。

僵尸是一个对象,在它被释放后被调用。通常,对象的内存地址随后被另一个对象使用,因此消息会发送到错误的对象。

您是否有代码使用 addObserver:selector:name:object: 方法注册您的应用程序对象之一以获取“已进入后台”通知 (UIApplicationDidEnterBackgroundNotification)?该通知是否指定了“didEnterBackground:”的选择器?

我的猜测是您正在注册 UIApplicationDidEnterBackgroundNotification 通知,然后您指定的 notificationObserver 被释放。那会导致您所描述的确切行为。

顺便说一句,您可能想使用 zombies instrument 来运行您的应用程序,或者打开 NSZombies 环境变量来查找僵尸。然后按主页按钮导致崩溃,看看 Xcode/instruments 告诉你什么。

关于ios - NSInvalidArgument 异常 - 随机对象接收 didEnterBackground,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19031685/

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