[英]Objective-C , array initialization
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有点陌生,有人可以告诉我这有什么问题吗?
您不能将常规的类似数组的下标与NSArrays(和NSMutableArrays)一起使用。 要添加一个项目,您需要调用addObject
方法。即[charArray addObject:obj]
。
另一个警告是您不能向NSArray添加裸char
,它必须是Objective-C类型。 您可以使用NSNumber类包装它。 因此,您的代码将是:
[charArray addObject:[NSNumber numberWithChar:'0']];
[charArray addObject:[NSNumber numberWithChar:'1']];
但是您仍然可以使用常规的C数组,而无需修改代码,这可能是一个更好的解决方案。 即
char charArray[MAX_SIZE];
您无法使用C的[]
语法访问NSMutableArray
。
您需要使用-[NSMutableArray addObject:]
或-[NSMutableArray insertObject:atIndex:]
方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.