2010-11-27 54 views
0

下面的代码段是从facebook.m文件:iPhone存储器泄漏

-(void) requestWithMethodName:(NSString *)methodName 
       andParams:(NSMutableDictionary *)params 
      andHttpMethod:(NSString *)httpMethod 
       andDelegate:(id <FBRequestDelegate>)delegate { 
    NSString * fullURL = [kRestApiURL stringByAppendingString:methodName]; 
    [self openUrl:fullURL params:params httpMethod:httpMethod delegate:delegate]; 
} 

我已发现在fullURL初始化线100%的内存泄漏。我找不到解决方案..

如果有人知道它的解决方案,那么请帮助我。

+0

请将您的代码放入代码片段中。 – TheSquad 2010-11-27 12:32:12

回答

0

这里没有泄漏。 stringByAppendingString:方法返回一个已经添加到autorelease池的新字符串。

0

仪器发现泄漏。它消失了,如果你摆脱在FBRequest类方法

+ (FBRequest *)getRequestWithParams:(NSMutableDictionary *) params 
         httpMethod:(NSString *) httpMethod 
          delegate:(id<FBRequestDelegate>) delegate 
         requestURL:(NSString *) url { 
    FBRequest* request = [[[FBRequest alloc] init] autorelease]; 
    request.delegate  = [delegate retain]; 
    request.url   = [url retain];   // <----- no leak if you don't retain url 
    request.httpMethod = [httpMethod retain]; 
    request.params  = [params retain]; 
    request.connection = nil; 
    request.responseText = nil; 

    return request; 
} 

的保留,但这里一切似乎是确定的我,所以如果错误是在这里或在器械我不能说。建议?