我的问题是关于在完成处理程序块之外保持引用有效。
首先,请看一下我的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
的引用在dispath_async
块的末尾被终止了...那么,在启用ARC的情况下,如何使该引用保持 Activity 状态呢?谢谢你们
最佳答案
由于尚未初始化数组,因此将为空。因此,首先您需要初始化可变数组。
self.tweetTextBank=[NSMutableArray array];
关于ios - 如何在 block 外部保持引用有效(启用ARC)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19889107/