我经常遇到崩溃,我认为这与检查MIDINetwork会话数量的方法有关。
- (NSString*) describeConnections {
NSMutableArray* connections = [NSMutableArray arrayWithCapacity:1000];
for (MIDINetworkConnection* connection in [[MIDINetworkSession defaultSession] connections]) {
[connections addObject:[[connection host] name]];
}
if ([connections count] > 0) {
return [connections componentsJoinedByString:@", "];
}
else
return @"(Not connected)";
}
当应用程序崩溃时,它会在行
上停止for (MIDINetworkConnection* connection in [[MIDINetworkSession defaultSession] connections])
我得到的错误是
Thread 1: EXC_BAD_ACCESS(code=EXC_1386_GPFLT)
在调试器中显示
_impl _MIDINetworkConnectionImpl * NULL
我试图通过在循环连接之前检查MIDINetworkSession是否为NULL来防止崩溃但是没有用。偶尔当xcode崩溃时,它将停在
int main(int argc, char *argv[])
{
@autoreleasepool {
int retVal = UIApplicationMain(argc, argv, nil, nil);
return retVal;
}
}
有人可以猜测发生了什么吗?
答案 0 :(得分:1)
似乎连接包含NULL,在某些情况下系统会释放连接。但是在集合中,它不能使用NULL作为元素,因此您应该检查连接或使用try catch来获取异常。 / p>