Ran Analyzer:潜在的内存泄漏

时间:2013-10-02 07:45:19

标签: ios memory memory-leaks

enter image description here

嗨,

我运行了XCode分析器 - 它告诉我以下两者都是潜在的内存泄漏。 我不知道为什么。 我宣布像这样的midiDevices

@property (assign, nonatomic) NSMutableArray* midiDevices;

这是openMidiIn

的代码
-(void)openMidiIn {
    int k, endpoints;

    CFStringRef name = NULL, cname = NULL, pname = NULL;
    CFStringEncoding defaultEncoding = CFStringGetSystemEncoding();
    MIDIPortRef mport = NULL;
    MIDIEndpointRef endpoint;
    OSStatus ret;

    /* MIDI client */
    cname = CFStringCreateWithCString(NULL, "my client", defaultEncoding);
    ret = MIDIClientCreate(cname, NULL, NULL, &mclient);
    if(!ret){
        /* MIDI output port */
        pname = CFStringCreateWithCString(NULL, "outport", defaultEncoding);
        ret = MIDIInputPortCreate(mclient, pname, MidiWidgetsManagerReadProc, self, &mport);
        if(!ret){
            /* sources, we connect to all available input sources */
            endpoints = MIDIGetNumberOfSources();
            //NSLog(@"midi srcs %d\n", endpoints);
            for(k=0; k < endpoints; k++){
                endpoint = MIDIGetSource(k);
                void *srcRefCon = endpoint;
                MIDIPortConnectSource(mport, endpoint, srcRefCon);

            }
        }
    }
    if(name) CFRelease(name);
    if(pname) CFRelease(pname);
    if(cname) CFRelease(cname);

}

感谢您的帮助。


分析仪信息 这里有关于进行一些更改的错误的更多信息。

enter image description here

1 个答案:

答案 0 :(得分:1)

假设您正在使用ARC,该对象实际上将被释放并立即释放。为什么它说你有内存泄漏令人困惑,但你会有一个死的参考。使用strong,而不是assign