MIDINetworkConnection вызывает сбой ошибки
Я испытываю частые сбои, которые, по моему мнению, связаны с этим методом проверки количества сеансов 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
Я попытался предотвратить сбой, проверив, имеет ли значение MIDINetwork Session значение NULL, прежде чем выполнять циклы через соединения, но это не сработало. Иногда, когда происходит сбой xcode, он останавливается на
int main(int argc, char *argv[])
{
@autoreleasepool {
int retVal = UIApplicationMain(argc, argv, nil, nil);
return retVal;
}
}
Кто-нибудь может подсказать, что происходит?
1 ответ
Кажется, что соединения содержат NULL, в некоторых случаях система освобождает соединения. Но в наборе она не может использовать NULL в качестве элементов, поэтому вы должны проверить соединения или использовать catch try, чтобы получить исключение.