我有一些从服务器获取数据的块。我可以看到在尝试从该块返回数组时出现错误。问题是,什么是正确的:
不要使用block,而是在完成时调用的选择器方法,并且我给它填充并返回的参数。
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error)
{
for(PFObject *object in objects)
{
PFObject *user = [object objectForKey:@"userId"];
//can't return value to other class here ..
}
}];
我应该在这里使用代表吗? (有可能吗?)
答案 0 :(得分:0)
您可以简单地使用__block前缀声明一个可在块中分配的变量或属性,然后您可以在块中为其分配一个值,并在您需要的任何地方使用。
示例:
__block NSString *string;
答案 1 :(得分:0)
典型的Cocoa方法是使用带回调的委托。如果您使用选择器,您仍然需要传递块选择器所属对象的实例,并且您将失去一些编译时安全性。