我在故事板中创建了我的项目,由于自定义UITableViewCell的问题,我创建了一个新项目,将所有数据复制到我的新类中,并将我的按钮,图像等从故事板视图复制到新项目的nib / xib文件。
现在当我点击任何按钮时,我的应用程序崩溃而没有任何错误,它会打开委托文件并突出显示这行代码
return UIApplicationMain(argc, argv, nil, NSStringFromClass([ThisOrThatAppDelegate class]));
我已经建立了从IB到控制器所需操作的连接。我也试过Command + Shift + K来获得干净的代码。但问题仍然存在。
答案 0 :(得分:2)
你必须先找出问题所在:
你应该进入调试器。您需要到达调试器捕获异常的位置。
然后编辑您的问题并告诉我们您获得的异常。我猜你会得到一个objc_msgSend()错误,这意味着某个对象试图发送一个不存在或被释放的对象。如果事实证明是真的,那么你可以启用“Zombies”(让所有对象都留在身边)并查看其中一个是否有消息。
如果没有任何帮助,那么您需要做的是开始添加NSLog消息以跟踪您的应用程序(或使用断点,您的选择)。这需要很长时间,所以你可能会倒退 - 看看你的appDelegate应用程序:didFinishLaunchingWithOptions:是否被调用,以及你是否到达它的末尾。
不幸的是,这类问题可能需要花费大量时间才能找到。有些对象可能在主队列中为另一个对象排队了一条消息,因此当你遇到崩溃时,你无法看到谁在什么时候做了什么。
此外,使用objc_msgSend问题,当调试器停止时,您无法轻松查看消息的对象 - 但如果您关闭调试器并让应用程序实际崩溃,您可以在控制台应用程序中找到崩溃报告并获取更多信息从那以后。