我的问题是关于在完成处理程序块之外保持引用活动。首先,请看我的 TableViewController:
@interface KMTweetTableViewController :
UITableViewController
@property (weak) ACAccount
*selectedAccount;
@property NSMutableArray *tweetTextBank ;
@end
在我的- (void)viewDidLoad
方法中KMTweetTableViewController
创建了一个SLRequest
名为userTimeLineRequest
. 事实证明,它负责为用户的时间线请求 twitter。
然后,我尝试从状态“文本”属性中创建一个数组。我使用这段代码来做到这一点:
[userTimeLineRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
NSArray *userTimeline = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:Nil];
int counter ; NSMutableArray *returner = [NSMutableArray alloc] ;
for (counter= 1 ; counter <= userTimelineCountReference ; counter++) {
NSDictionary *status = [userTimeline objectAtIndex: counter-1] ;
NSString *tweetText = [status objectForKey:@"text"];
[self.tweetTextBank addObject:tweetText ];
}
NSLog(@"%@" , self.tweetTextBank) ;
});
}];
块中的代码dispath_async
运行良好,但是当NSLog()
触发时,我只是得到null
. 我认为这是因为tweetText
s 的引用在块的末尾被终止dispath_async
......那么在这种情况下我能做些什么来在启用 ARC 时保持该引用有效?
谢谢你们