我正在使用 Parse iOS SDK,我想存储我的 findObjectsInBackgroundWithBlock : query in a
UILabel . The
UILabel is created inside of the
viewForHeaderInSection`:我的表视图的方法。
如果我创建UILabel
块的内部,我可以成功存储我需要的值并在我的视图上显示标签。当查询在 Parse 中运行时,它会在查询使用本地缓存之前尝试连接到服务器 3 次。如果任何尝试失败或与服务器的连接速度很慢,我会UILabel
闪烁。我不希望这样,所以我的想法是以某种方式在块之外访问我的查询结果并将其存储为UILabel
块完成后。
有人可以告诉我如何在块外访问我的查询结果并将结果存储在 a 中UILabel
吗?
下面的示例是我当前如何UILabel
在视图上创建 并将我的块的结果显示为UILabel
. 谢谢您的帮助!
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *myHeader = [[UIView alloc] initWithFrame:CGRectMake(0,60,320,20)];
myHeader.backgroundColor = [UIColor grayColor];
PFQuery *query = [PFQuery queryWithClassName:@"ClassName"];
query.cachePolicy = kPFCachePolicyNetworkElseCache;
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error)
{
NSNumber *sum = [objects valueForKeyPath:@"@sum.sumResults"];
UILabel *myLabel1 = [[UILabel alloc] initWithFrame:CGRectMake(15,0,120,20)] ;
myLabel1.font = [UIFont boldSystemFontOfSize:14.0];
myLabel1.text = [NSString stringWithFormat:@"Sum results: %.1f", [sum floatValue]];
[myHeader addSubview:myLabel1];
}
else
{
NSLog(@"Error: %@ %@", error, [error userInfo]);
}
}];
return myHeader;
}