2012-05-29 80 views
0

當我使用從我需要的URL的JSON解析時,我得到了低於nsarray響應,但在這裏我不喜歡得到2,1,4,4,6,5,8,7,10,9,12和11在單個數組我必須得到總響應到兩個數組我的意思是一個數組集合將包括2,4,6,8,10和其他數組必須是3,5,7,9和11.將單個數組分成兩個數組的代碼如何?

那麼如何將單個數組響應分離爲iPhone中的兩個數組?

"(\n 2,\n 1\n)", 
"(\n 4,\n 3\n)", 
"(\n 6,\n 5\n)", 
"(\n 8,\n 7\n)", 
"(\n 10,\n 9\n)", 
"(\n 12,\n 11\n)" 
+0

是你需要的答案嗎?如果是這樣,請將其標記爲正確。否則,也許我們不明白這個問題。帶有括號,空格和換行符的文本是否是解釋的一部分,還是需要解析出這些額外字符才能獲得數字? – curtisdf

回答

5

如果每一個數字組合成一個大陣,你可以,如果每個數字在for-in循環爲偶數或奇數用一個簡單的if-else可行性的測試。也許是這樣的:

-(NSArray*)parseJSONIntoArrays:(NSArray*)array { 
    NSMutableArray *evenNumbers = [[NSMutableArray alloc]init]; 
    NSMutableArray *oddNumbers = [[NSMutableArray alloc]init]; 

    for (NSNumber *number in array) { 
     if (([number intValue] %2) == 0) { 
      //even 
      [evenNumbers addObject:number]; 
     } 
     else { 
      //odd 
      [oddNumbers addObject:number]; 
     } 
    } 
    return [[NSArray alloc]initWithObjects:evenNumbers, oddNumbers, nil]; 
} 
4

要拆分的數組,你通常是通過所有的值需要循環並使用IF ELSE結構,以決定把哪些數組中的值。另外,你需要使用NSMutableArray而不是NSArray。事情是這樣的:

NSMutableArray *evenNumbers = [NSMutableArray new]; 
NSMutableArray *oddNumbers = [NSMutableArray new]; 
for (NSNumber *value in myArray) { 
    if ([value intValue] % 2 == 0) { 
     [evenNumbers addObject:value]; 
    } else { 
     [oddNumbers addObject:value]; 
    } 
} 
+2

當!揍我一分鐘哦,NSInteger會從Xcode中拋出一個「不是對象」的警告。你必須使用NSNumber,否則這將不起作用。 – CodaFi

+0

謝謝@CodaFi。我修正了我的例子。我意識到有多種方法可以進行偶數測試,但這應該起作用。 – curtisdf

+0

我提高了它。謝謝! – curtisdf

相關問題