2011-01-14 125 views
0
後使用

該代碼返回錯誤:
458:它被釋放內存管理問題:釋放對象

- (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

後3引用計數的對象用於有關,如果你嘗試做什麼:

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

因爲如果你不去其他地方,你不會啓動目標。

+0

此外,嘗試更頻繁地使用靜態分析器。 – Jake 2011-01-14 10:40:38