2011-01-14 14 views
0

後にこのコードを使用するオブジェクトがエラーを返して:
458:それが解放された後3参照カウントオブジェクトが使用されているメモリ管理の問題:リリース

- (id)createObjectFromURL: (NSURL*)URL 
        query: (NSDictionary*)query { 
    id target = nil; 

    if (self.instantiatesClass) 
    { 
    target = [_targetClass alloc]; 
    } 

    else 
    { 
    target = [_targetObject retain]; 
    } 

    id returnValue = nil; 
    if (_selector) 
    { 
    returnValue = [self invoke:target withURL:URL query:query]; 
    } 
    else if (self.instantiatesClass) 
    { 
    returnValue = [target init]; 
    } 

    [target autorelease]; 
    return returnValue; 
} 

答えて

0

あなたはこれを行うにしようとした場合について:

else if (self.instantiatesClass) 
{ 
    returnValue = [[target init] autorelease]; 
} 
return returnValue; 

もしあなたが他の人に行かないなら、あなたはターゲットを起動していないからです。

+0

また、スタティックアナライザの使用を頻繁に試みてください。 – Jake

+0

MiRAGe;この "スタティックアナライザ"はどれですか? – erastusnjuki

+0

これは、自動的に簡単なバグやタイプミスを見つけるコンパイラのようなものです。ショートカットは、Apple-shift-Aまたはビルド→ビルドと分析です。それで私のソリューションは機能しましたか? –