發送到解除分配的「__NSDictionaryI」對象(殭屍)我有使用Multipeer連接從一個iOS設備的字符串發送到另一個iOS設備的應用程序。它工作並且不起作用。一個Objective-C消息被在地址爲0x1
該應用程序是相當多的看到這個鏈接的教程中的應用:http://www.appcoda.com/intro-multipeer-connectivity-framework-ios-programming/
有時,應用程序將發送30消息,然後崩潰,其他時候,它會崩潰在第一或第二的消息。
Xcode給我一個崩潰的EXC_BAD_ACCESS。
我用NSZombie給予一定的援助,併爲我提供了下面的,但我是相當新的,無法全面瞭解崩潰背後的原因。
I'f崩潰是由於NSDictionary中的,在我的應用程序只有2個:
-(void)session:(MCSession *)session peer:(MCPeerID *)peerID didChangeState:(MCSessionState)state{
NSDictionary *dict = @{@"peerID": peerID,
@"state" : [NSNumber numberWithInt:state]
};
[[NSNotificationCenter defaultCenter] postNotificationName:@"MCDidChangeStateNotification"
object:nil
userInfo:dict];
}
-(void)session:(MCSession *)session didReceiveData:(NSData *)data fromPeer:(MCPeerID *)peerID{
NSDictionary *dict = @{@"data": data,
@"peerID": peerID
};
[[NSNotificationCenter defaultCenter] postNotificationName:@"MCDidReceiveDataNotification"
object:nil
userInfo:dict];
}
有什麼建議?
你在某個地方有一個指向不是的對象的指針。它毫無疑問曾經是,但隨後它得到了「收集」,因爲問題指針不是「強大的」(或一些類似的只是更混亂的情況)。 – 2015-02-10 13:32:28
要了解發生的情況,請學習如何獲取和解釋「異常堆棧跟蹤」。 – 2015-02-10 13:55:33
您鏈接到的教程的FWIW非常差,您應該在別處尋找一個良好的MPC示例。如果我找到一個我會發佈一個。 – ChrisH 2015-02-10 17:54:08