2011-01-14 85 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