2014-02-10 38 views
0

我有一些块,从服务器获取数据。我可以看到,当我尝试从该块中返回数组时,出现错误。问题是,什么是正确的:从块我应该使用代表块返回?

  1. 使用委托完成时被调用使用它
  2. 不使用模块的其它类,但选择的方法,我给它的论点,即正在填补和回报。

    [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; 
+0

看起来像一个异步块,所以不能从该方法返回结果 –

相关问题