2013-04-24 116 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