現在、この問題を 1 日以上調査していますが、原因がわかりません。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 のレンダリングとセルの再利用に関連していると思われますが、これまでのところ、試行錯誤の結果は得られませんでした (また、UICollectionView をサードパーティの GMGridView に置き換えましたが、問題はそのままです)。NSZombies を有効にしても何も変わりませんでした (まだクラッシュしています)。シミュレーターでは、クラッシュは今のところ発生していません。コードでは ARC を使用し、malloc は使用しません。
その問題を追跡するにはどうすればよいでしょうか?