我使用parse.com作为我的应用程序的后端。 我需要从我的后端获取信息并使用此信息初始化一个实例。 我用这个代码为了做到这一点:未从块内初始化的iOS实例变量
- (id) initWithTeamId:(NSString *)teamId
{
__block NSString *str;
__block FrFTeam *blockSelf = self;
PFQuery *query = [PFQuery queryWithClassName:@"teams"];
[query getObjectInBackgroundWithId:teamId block:^(PFObject *object, NSError *error) {
str = [object objectForKey:@"teamName"];
(void)[blockSelf initWithName:str players:nil thumb:nil];
}];
return self;
}
当这个代码做self.name设置为null, 我究竟做错了什么? 谢谢!
谢谢,在启动之后,这仍然不起作用:FrFTeam * tmpTeam = [[FrFTeam alloc] init];并使用你的方法:[tmpTeam setupWithTeamId:team.objectId];该名称仍然为空 –
在调用该方法后立即它是无(应该是),因为完成处理程序最多安排在当前runloop的END处,所以没有办法让名称字段立即填充而没有阻塞请求。我的建议KVO,你可以听名字的变化(如果设置正确),并根据变化采取行动。 –