【发布时间】:2015-02-10 13:17:21
【问题描述】:
我有一个应用程序使用 Multipeer Connectivity 将字符串从一台 iOS 设备发送到另一台 iOS 设备。它可以工作,也可以不工作。
该应用与此链接教程中的应用几乎相同:http://www.appcoda.com/intro-multipeer-connectivity-framework-ios-programming/
有时,应用会发送大约 30 条消息然后崩溃,有时,它会在第一条或第二条消息时崩溃。
Xcode 给了我一个 EXC_BAD_ACCESS 用于崩溃。
我使用 NSZombie 提供了一些帮助,它为我提供了以下信息,但我是新手,无法理解崩溃背后的原因。
如果崩溃是由于 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 示例。如果我找到一个,我会发布一个。
标签: ios objective-c xcode nsdictionary multipeer-connectivity