2013-05-06 165 views
3

我目前正在导入所有的facebook生日,并将它们插入到核心数据中,然后根据最新的bday(取出和排序)对它们进行排序。 当我使用Facebook进行同步并获取所有联系人时,我的应用程序完美地检索所有联系人,但在收到联系人后很快崩溃了..ios应用程序崩溃没有错误,没有崩溃报告

我试过使用僵尸对象。

我试过泄漏。

我试着在异常导航器中添加异常。

我同步我的ipod与iTunes去图书馆和设备日志,但无法找到任何文件,说什么低内存问题或什么sorta。

我很困惑,因为崩溃的原因犯规展现出来,它只是崩溃,当我再次打开我的应用程序,我可以看到来自Facebook

进口出现在调试器窗口中没有LLDB,当所有联系人我改变它为gdb,我可以看到gdb,但是当我使用backtrace(bt)时,它会说“无堆栈”

我还注意到有一件事,即如果联系人太多,我的应用崩溃,接触它正常工作。

可能是什么问题?是否因内存问题而崩溃? 我应该怎么知道是什么导致了这次事故?

谢谢

+0

它是可重复的吗?调试和发布构建配置中是否发生相同的行为?如果使用调试,请检查作为该特定用例的一部分或作为结果发生的所有日志语句。你可能会在那里发现一些被忽视的警告。 – YvesLeBorg 2013-05-06 14:36:15

+0

com.apple.launchd [1](UIKitApplication:com。***。*** [0x589e] [2041]):(UIKitApplication:com。***。*** [0x589e])已退出:已杀死:9 多数民众赞成在设备日志中发生什么,所以主要与内存问题 – vin 2013-05-06 14:44:55

回答

9

由于内存不足,您的应用很可能被终止。

最好的办法是使用在设备控制台看Xcode的组织者:

enter image description here

如果iOS版运行内存,并杀死你的应用程序,你会看到这样的事情:

<Notice>: jetsam: kernel termination snapshot being created 
<Warning>: Application 'UIKitApplication:com.yourapp[0x6337]' exited abnormally with signal 9: Killed: 9 

您应该使用Instruments中的活动监视器来查看应用程序正在使用多少内存。

您还可以使用Memory Monitor仪器并启用“无物理内存”图形。如果您在崩溃前看到图形接近0,则可以确定这是内存问题。

enter image description here

+0

请注意,即使您使用像crashlytics一样的崩溃记者,如果该应用程序是由于记忆而终止。 – ahwulf 2013-05-06 14:22:37

+0

@Mike Weller你说得对,它是一个内存问题,它刚刚崩溃了日志说这个com.apple.launchd [1](UIKitApplication:com。***。*** [0x589e] [2041]): (UIKitApplication:com。***。*** [0x589e])已退出:已杀死:9感谢您的帮助,只是想知道如何获取上面提供的快照中的单个内存监视器 – vin 2013-05-06 14:49:29

0

尽量把一些代码的内存释放到viewDidUnload。例如,如果您使用鼠标在代码和xib之间创建链接,则xcode会自动为当前元素生成代码。

+0

'viewDidUnload'已被弃用,不再在iOS6中调用。请参阅http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/DeprecationAppendix/附录ADeprecatedAPI.html – Kerni 2013-05-06 14:56:37

+0

好吧,但是您是否也为ios5编写应用程序? – user2159978 2013-05-07 07:03:04

+0

由于您必须更改iOS6的代码,因此只能以适用于这两种方式的方式实施。 – Kerni 2013-05-07 11:01:35