私はこれまでで最も奇妙なバグを経験しています。iPhoneでアプリを実行しています。次のコードがあります。
self.callCenter = [[CTCallCenter alloc] init];
[self.callCenter setCallEventHandler: ^(CTCall* call) {
if ([call.callState isEqualToString: CTCallStateDisconnected]) {
NSLog(@"call ended");
dispatch_sync(dispatch_get_main_queue(), ^(void) {
NSLog(@"on main thread!");
NSMutableDictionary *userInfo = [NSMutableDictionary dictionary];
[userInfo setValue:weakSelf.recordRef forKey:kContactKey];
[[NSNotificationCenter defaultCenter] postNotificationName:kCallEndedNotification object:nil userInfo:userInfo];
});
}
}];
何らかの理由で、このコードブロックは呼び出されません。しかし、ifステートメントにブレークポイントを設定すると、それが呼び出されます。なぜこれが起こっているのか考えていますか?