Ios TWRequest在非ARC项目中使用时似乎会泄漏

Ios TWRequest在非ARC项目中使用时似乎会泄漏,ios,memory-leaks,instruments,twrequest,social-framework,Ios,Memory Leaks,Instruments,Twrequest,Social Framework,Instruments(Leaks)在使用TWRequest时报告内存泄漏,我真的看不出我做错了什么 以下是重现问题的步骤: 创建一个新的Xcode项目(ARC禁用),添加Twitter框架,然后只向代码中添加以下行(例如在viewDidLoad中): 在使用Instruments(Leaks)分析此代码之后,它告诉我带有“performRequestWithHandler”的行正在泄漏: 有什么办法来防止泄漏吗 我发现了一个类似的问题,但它似乎与我所描述的问题无关。我不确定为什么instr

Instruments(Leaks)在使用TWRequest时报告内存泄漏,我真的看不出我做错了什么

以下是重现问题的步骤:

创建一个新的Xcode项目(ARC禁用),添加Twitter框架,然后只向代码中添加以下行(例如在viewDidLoad中):

在使用Instruments(Leaks)分析此代码之后,它告诉我带有“performRequestWithHandler”的行正在泄漏:

有什么办法来防止泄漏吗


我发现了一个类似的问题,但它似乎与我所描述的问题无关。

我不确定为什么instruments会将其视为泄漏,但您可以在完成块之外释放请求。一旦启动请求,它将由连接保留,直到执行完成块。将代码更改为:

TWRequest *postRequest = [[TWRequest alloc] initWithURL:[NSURL URLWithString:@"http://api.twitter.com/1/statuses/public_timeline.json"] parameters:nil requestMethod:TWRequestMethodGET];

[postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
    NSLog(@"in performrequest");
}];

[postRequest release];
如果这也能消除泄漏,我也不会感到惊讶

TWRequest *postRequest = [[TWRequest alloc] initWithURL:[NSURL URLWithString:@"http://api.twitter.com/1/statuses/public_timeline.json"] parameters:nil requestMethod:TWRequestMethodGET];

[postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
    NSLog(@"in performrequest");
}];

[postRequest release];