2013-04-24 75 views
1

我已经块从服务器加载数据,问题是,我不能影响我的结果在一个全局变量在块区块的iOS修改全局变量

从谷歌翻译:

我有块从服务器加载数据,问题是,我可以在不影响我的结果在一个变量整体的块

[URLImages asyncRequest:RequestForPopular 
        success:^(NSData *data, NSURLResponse *response) { 
         NSLog(@"Success!"); 
         NSError* error; 
         NSDictionary* json = [NSJSONSerialization 
               JSONObjectWithData:data 

               options:kNilOptions 
               error:&error]; 

         NSArray *arrayimages; 
         arrayimages = [[[json objectForKey:@"result"] objectForKey:@"images"] objectForKey:@"_content"]; 

         NSMutableArray *mutArrURLss = [[NSMutableArray alloc]init]; 
         for (int i=0; i<[arrayimages count];i++) 
         { 
          NSDictionary *arrayContent = [arrayimages objectAtIndex:i]; 
          [mutArrURLss addObject:[arrayContent objectForKey:@"element_url"]]; 
         } 

        mutArrURLs = mutArrURLss //mutArrURLs is Global 
        } 
        failure:^(NSD`enter code here`ata *data, NSError *error) { 
         NSLog(@"Error! %@",[error localizedDescription]); 
        }]; 

回答

0

首先创建您的整体可变数组:

NSMutableArray *mutArrURLs 

然后在viewDidLoad中甚至“+(无效)初始化”:

mutArrURLs = [[NSMutableArray alloc]init]; 

现在你具备当年对象可以在块进行操作。不要创建临时的,只是对象添加到这个全局数组。

编辑:不明白为什么使其成为一个静态的帮助,目的很高兴为你工作。

+0

这是我做的,它不通过宣称它的工作原理 – 2013-04-24 16:27:42

+0

澳大利亚游泳我不明白为什么使它'static'帮助一个静态变量的工作目标,目标。 'Static'是全局变量,使得它根本就没有提供给其他文件。除非在OP是说谎,变量不是全局...其实这是 – newacct 2013-04-24 23:16:58

+0

@newacct尽可能有全局变量方式评论另一个在评论另一个文件名萨米的声明,以及那一个是他nil'd初始化后它。这是有道理的唯一解释。 – 2013-04-25 14:14:57

-2

如果你想改变/分配一个全局变量块内部在声明变量全球使用不宜__block指令。它不宜是这样的:__block NSMutableArray *mutArrURLs;

+0

'__block'只适用于局部变量 - 局部变量只能由块 – newacct 2013-04-24 23:15:16

+0

是的拍摄,我误解__global__术语的含义。 – danypata 2013-04-25 14:22:58