リモート通知を受け取るアプリがあります。プッシュ後に表示されるView Controllerにはテーブルビューがあります。回線設定フレームでアプリが非常にランダムに (20 回に 1 回) クラッシュします。
if (!myTableView) {
NSLog(@"self.myTableView is nil");
}
myTableView.frame=CGRectMake(0, 70, 320, 376);
これは、アプリを開いてから他のアプリを開いてプッシュ通知を受け取ったときにのみ発生します。記憶と関係があると思います。私はARC(ios 5)を使用しています。おかしいのは、nslog が表示されないので、tableview が nil ではないことです。
クラッシュログ:
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x522d580c
Crashed Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libobjc.A.dylib 0x352b1f7e objc_msgSend + 22
1 Foundation 0x37dc174c NSKVOPendingNotificationCreate + 216
2 Foundation 0x37dc1652 NSKeyValuePushPendingNotificationPerThread + 62
3 Foundation 0x37db3744 NSKeyValueWillChange + 408
4 Foundation 0x37d8a848 -[NSObject(NSKeyValueObserverNotification) willChangeValueForKey:] + 176
5 Foundation 0x37e0ca14 _NSSetPointValueAndNotify + 76
6 UIKit 0x312af25a -[UIScrollView(Static) _adjustContentOffsetIfNecessary] + 1890
7 UIKit 0x312cca54 -[UIScrollView setFrame:] + 548
8 UIKit 0x312cc802 -[UITableView setFrame:] + 182
9 POViO 0x000913cc -[FeedVC viewWillAppear:] (FeedVC.m:303)
ログに記録されていないため、Dealloc は呼び出されません。
- (void)dealloc {
NSLog(@"dealloc");
}