У меня есть приложение, использующее Multipeer Connectivity для отправки строки с одного устройства iOS на другое устройство iOS. Он работает и не работает.Сообщение Objective-C было отправлено на объект deallocated '__NSDictionaryI' (зомби) по адресу 0x1
приложение довольно много приложение видно на учебник по этой ссылке: http://www.appcoda.com/intro-multipeer-connectivity-framework-ios-programming/
Иногда приложение будет отправлять около 30 сообщений, а затем падает, в другое время, это приведет к краху на 1-ом или 2-ом сообщении.
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];
}
Любые предложения?
У вас есть указатель на объект, который не является. Это, несомненно, было, но потом оно получилось «собранным», потому что указатель проблемы не был «сильным» (или несколькими похожими только более запутанными сценариями). –
Чтобы узнать, где это происходит, узнайте, как получить и интерпретировать «трассировку стека исключений». –
FWIW, что учебник, с которым вы связались, довольно беден, и вам, вероятно, следует искать в другом месте хороший пример MPC. Если я найду его, я отправлю его. – ChrisH