我们现在正在研究这个问题超过一天,但却无法找到原因。我们有一个在iOS6上运行良好的应用程序,但在iOS7上我们在滚动显示一些自定义UICollectionViewCells的UICollectionView时会出现随机崩溃。
崩溃本身发生在另一个地方,但
int main(int argc, char *argv[])
{
@autoreleasepool
{
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
并且堆栈跟踪显示:
#0 0x39210b66 in objc_msgSend ()
#1 0x3102b042 in CA::Display::DisplayLinkItem::dispatch() ()
#2 0x3102adec in CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) ()
#3 0x33c2076c in IOMobileFramebufferVsyncNotifyFunc ()
#4 0x2f8afe6c in IODispatchCalloutFromCFMessage ()
#5 0x2eb8db88 in __CFMachPortPerform ()
#6 0x2eb9877e in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ ()
#7 0x2eb9871a in __CFRunLoopDoSource1 ()
#8 0x2eb96ee6 in __CFRunLoopRun ()
#9 0x2eb01540 in CFRunLoopRunSpecific ()
#10 0x2eb01322 in CFRunLoopRunInMode ()
#11 0x338052ea in GSEventRunModal ()
#12 0x313b81e4 in UIApplicationMain ()
#13 0x0001e69c in main
我不知何故怀疑这个问题与细胞内UIImageViews的渲染和细胞的重复使用有关,但到目前为止我们的试验和错误没有发现任何结果(我们现在也用第三方GMGridView取代了现在的UICollectionView)但问题保持不变)。激活NSZombies并没有改变一件事(仍在崩溃)。在模拟器上,到目前为止没有发生崩溃。我们使用ARC,不要在代码中使用任何malloc。
我们可以做些什么来追踪这个问题?