MIDINetworkConnection导致崩溃错误

时间:2014-10-29 01:12:00

标签: ios xcode midi coremidi

我经常遇到崩溃,我认为这与检查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;
    }
}

有人可以猜测发生了什么吗?

1 个答案:

答案 0 :(得分:1)

似乎连接包含NULL,在某些情况下系统会释放连接。但是在集合中,它不能使用NULL作为元素,因此您应该检查连接或使用try catch来获取异常。 / p>