Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios midclientcreate";操作无法';不可能完成。(OSStatus错误-50)。”;_Ios_Objective C_Core Audio_Coremidi - Fatal编程技术网

Ios midclientcreate";操作无法';不可能完成。(OSStatus错误-50)。”;

Ios midclientcreate";操作无法';不可能完成。(OSStatus错误-50)。”;,ios,objective-c,core-audio,coremidi,Ios,Objective C,Core Audio,Coremidi,我试图在一个复杂的iOS/Objective-C软件中调试MIDI问题。 它出现在本次通话中: OSStatus s; MIDIClientRef midi_client_ref; s = MIDIClientCreate((CFStringRef)@"MIDIPlayerSetup MIDI Client", NULL, NULL, &midi_client_ref); 大多数情况下,一切正常,但有时返回的OSStatus是一个-50代码(错

我试图在一个复杂的iOS/Objective-C软件中调试MIDI问题。 它出现在本次通话中:

OSStatus s;
MIDIClientRef midi_client_ref;
s = MIDIClientCreate((CFStringRef)@"MIDIPlayerSetup MIDI Client", NULL, NULL,
                     &midi_client_ref);
大多数情况下,一切正常,但有时返回的OSStatus是一个-50代码(错误参数)

但正如您在web上的许多MidClientCreate示例中所看到的,显式参数并不是真正的问题。我甚至试着用一个唯一的名字,但没有效果

为了确定搜索方向,我需要更准确地了解底层客户端创建过程中发生了什么,这可能会引发这个糟糕的参数问题

欢迎任何猜测

更新:有人遇到了同样的问题并解决了。他说“这是由一个非斜体变量引起的。”


这是一个迹象,但不足以让我犯错误……

我联系了苹果公司,这是一个内部CoreMIDI错误(至少在iOS8.3之前是如此),直到现在还不知道

来自支持部门: MIDIClientCreate本身在两种情况下将返回-50:

1) 如果outClient本身为空,那么在上面的示例中,您将忘记获取客户端的地址

2) 如果MIDI服务器在内部获取进程ID时出现问题

我确保了我提供的客户地址是正确的,因此在我的情况下是2)

复制错误: 然后我注意到我有几个调用
MIDIGetNumberOfSources()
在潜在错误之前,因此我实现了一个示例应用程序,其委托中包含:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    NSLog(@"application:didFinishLaunchingWithOptions:");
    for (int i = 0; i < 100000000; i++) {
        MIDIGetNumberOfSources();
    }
    MIDIClientRef client;
    OSStatus s = MIDIClientCreate(CFSTR("iMIDI Client"), NULL, NULL, &client);
    NSLog(@"OSStatus : %d", (int)s);
    return YES;
}
-(BOOL)应用程序:(UIApplication*)应用程序使用选项完成启动:(NSDictionary*)启动选项{
NSLog(@“应用程序:didFinishLaunchingWithOptions:”);
对于(int i=0;i<100000000;i++){
MIDIGetNumberOfSources();
}
MIDIClientRef客户端;
OSStatus s=midclientcreate(CFSTR(“iMIDI客户端”)、NULL、NULL和Client;
NSLog(@“OSStatus:%d”(int)s);
返回YES;
}
在iOS模拟器的iOS 8.3(12F69)中,在iPhone 5上运行该应用程序,每次在我的机器上重现该漏洞的几率约为50%