【问题标题】:App Crashing when main returns with "Should've been invalidated"当 main 返回“应该已失效”时应用程序崩溃
【发布时间】:2012-02-15 17:45:46
【问题描述】:

main 返回时应用程序崩溃。

有谁知道控制台消息“应该已经失效”是什么意思?我运行 Clang 并收到了干净的测试结果。我正在使用 Stig Brautaset 的库成功解析 JSON,如下所示:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
  ...
  NSDictionary *results = [responseString JSONValue];
  ...
}

错误: EXEC_BAD_ACCESS

控制台消息 2012-01-21 08:57:55.817 wftd-remote-json[14190:707] 应该已经失效

#import <UIKit/UIKit.h>
#import "AppDelegate.h"

int main(int argc, char *argv[]){
   @autoreleasepool {

     return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
  }
}

控制台消息 2012-01-21 08:57:55.817 wftd-remote-json[14190:707] 应该已经失效

感谢观看

【问题讨论】:

  • 从您的 JSON 代码中发布一些代码,特别是与 wftd-remote-json 相关的任何代码。
  • 你使用的是什么 JSON 反序列化器?
  • EXEC_BAD_ACCESS 发生时调试器中的哪一行显示?
  • 在@autorelease 块内:code @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));code }
  • 还可以尝试搜索僵尸对象(NSZombieEnabled 或 Instruments),因为 EXC_BAD_ACCESS 通常是由内存管理问题引起的,甚至可能与该控制台消息无关。

标签: ios xcode debugging crash main


【解决方案1】:

通过使用 Instruments,我能够找到 Zombie 对象并纠正我的错误。都修好了。感谢 TriPhoenix 的建议。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    • 2019-01-29
    相关资源
    最近更新 更多