使用ARC完成我的第一个项目。想象一下我有多惊讶,几乎立刻就发现了一个漏洞。有没有人知道为什么下面的代码会泄漏符号标识符:'dispatch_queue_create':
这是在iOS5 w/ ARC中使用一个过于简化的TWRequest处理程序:
- (void)loadSomeTweets
{
NSString *queryString = [NSString stringWithString:@"http://search.twitter.com/search.json?"];
NSDictionary *parameters = [NSDictionary dictionaryWithObjectsAndKeys:@"%23WatchingTheVoice", @"q", nil];
NSURL *targetedSearchURL = [NSURL URLWithString:queryString];
TWRequest *targetedRequest = [[TWRequest alloc] initWithURL:targetedSearchURL
parameters:parameters
requestMethod:TWRequestMethodGET];
[targetedRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error)
{
//Do something
}];
}为什么这个会泄漏?调用堆栈牵涉到performRequestWithHandler,但无论我在回调处理程序中做什么,都会发生泄漏,即使是空的实现(如此处所示)也会产生泄漏。泄漏发生在模拟器和设备上。
发布于 2012-02-22 02:16:59
这个问题是由Apple的Twitter框架中的内存泄漏造成的。
https://stackoverflow.com/questions/9370956
复制相似问题