2012-02-26 26 views
1

我创建了下面的函数,但它似乎在performRequestWithHandler上泄漏。在ARC项目中TWRequest泄漏

- (void)getDataForRequest:(TWRequest *)postRequest withSelector:(SEL)selector { 

if (twitterAccount != nil) { 

    [postRequest setAccount:twitterAccount]; 

    [postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error){ 

     id jsonResponse = nil; 

     if (responseData) { 
      NSError *jsonParsingError = nil; 
      jsonResponse = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:&jsonParsingError]; 
     } 

     if (!jsonResponse) { 
      NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSASCIIStringEncoding]; 
      jsonResponse = [NSDictionary dictionaryWithObjectsAndKeys:responseString, @"response", nil]; 
     } 

     if (error != nil && ![jsonResponse objectForKey:@"error"]) { 

      NSString *errorMessage = error.localizedDescription; 
      jsonResponse = [NSDictionary dictionaryWithObjectsAndKeys:errorMessage, @"error", nil]; 

     } 

     [self performSelectorOnMainThread:selector withObject:jsonResponse waitUntilDone:NO];      


    }]; 
} 

}

泄漏通过回溯:

泄露的对象---- ----#----地址----大小图书馆负责----负责任的框架

XPCProxy ---- 1 ---- ---- 0x2c6480 32个字节---- ----帐户 - [ACOAuthSigner initWithAccount:]

的NSArray ---- 1 ---- 0x2cf010 ---- 64字节---- XPCObjects ---- - [XPCProxy restrictDecodin gToWhitelistedClassNames:]

malloc的128个字节---- 1 ---- ---- 0x2d0650 128个字节---- libdispatch.dylib dispatch_queue_create $ $ VARIANT熔点

malloc的128个字节---- 1 ---- 0x2cf0f0 ---- 128字节---- libdispatch.dylib dispatch_queue_create $ VARIANT $ mp

谢谢。

+0

什么是操作系统?你在使用ARC吗?您是否尝试过启用僵尸乐器? – 2012-02-27 13:22:22

+0

是的,我已经使用僵尸启用仪器。我正在使用iOS 5和ARC。谢谢。 – ajayjapan 2012-02-27 18:16:54

+0

您是否找到解决方案? – iBiryukov 2012-04-30 21:56:11

回答

0

这是由iOS 5.0上的Apple API代码中的一个错误引起的,现在好像已经修复了