繁体   English   中英

Objective-C数组初始化

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM