2011-04-12 34 views
1
int num1, num2,num3,num4, i=0; 
NSMutableArray *charArray = [[NSMutableArray alloc] init]; 

while(num1 != 0 && num2 != 0) { 
    num3 = num1 & 1; 
    num4 = num2 & 1; 
    if(num3 != num4) { 
    if(num3 == 0) { 
     charArray[i++]= '0'; 
     charArray[i++]= '1'; 
    } else { 
     charArray[i++]='1'; 
     charArray[i++]='0'; 
    } 
    } 
    num1 = num1 > 1; 
    num2 = num2 > 1; 
} 

}的Objective-C,數組初始化

我還挺新的Objective-C,誰能告訴我什麼是錯呢?

+0

你的大括號不平衡。 – 2011-04-12 05:24:47

回答

3

使用C.

[]語法,你需要使用-[NSMutableArray addObject:]-[NSMutableArray insertObject:atIndex:]方法不能訪問NSMutableArray

+0

那麼我如何增加我的價值並把這些價值? – user531 2011-04-12 05:22:17

+0

@ user531,如果你使用addObject,你不需要我,因爲這會自動添加到你的最後。 – 2011-04-12 05:35:31

+0

你看看我在上面提到的問題之一,並讓我知道你是否可以幫我解決這個問題? – user531 2011-04-12 05:47:33

4

您不能在NSArrays(和NSMutableArrays)中使用常規的數組下標。要添加項目,您需要調用addObject方法..即[charArray addObject:obj]

另一個警告是你不能添加一個裸露的char到一個NSArray,它需要是Objective-C類型。你可以使用NSNumber類來包裝它。所以,你的代碼將被:

[charArray addObject:[NSNumber numberWithChar:'0']]; 
[charArray addObject:[NSNumber numberWithChar:'1']]; 

但你仍然可以使用常規的C數組,並留下您的代碼修改,這可能是你的情況更好的解決方案。即

char charArray[MAX_SIZE]; 
+0

所以在這裏沒有使用i ++嗎? – user531 2011-04-12 05:20:47

+0

'addObject'自動將值附加到結尾。 – yan 2011-04-12 05:24:54

+0

我還有一個問題 – user531 2011-04-12 05:33:32