static NSMutableArray * words [10]不兼容的指针类型

时间:2014-03-20 16:10:22

标签: objective-c static nsmutablearray

static NSMutableArray *words[10]= {@"word",@"word",@"word",@"word",@"word",@"word",@"word",@"word",nil};

发出警告: "不兼容的指针类型初始化' NSMutableArray *'表达类型为' NSString *'

我该如何规避这个问题?

1 个答案:

答案 0 :(得分:0)

即使没有静态

,您的代码也无法编译

1.Remove [10]

2.Change' {...}'到' @ [...]'

3.删除nil

你应该收到

NSMutableArray *words= @[@"word",@"word",@"word",@"word",@"word",@"word",@"word",@"word"];

但是words将是一个NSArray,而不是NSMutableArray,因为它是用NSArray对象初始化的。如果你试图宣布它是静态的'您将收到编译器错误

  

initializer元素不是编译时常量

因为只有编译时常量可以声明为static。无法在编译时创建NSMutableArray。

如果你需要静态数组,你应该使用C风格的数组

static NSString *words[] = {@"word",@"word",@"word",@"word",@"word",@"word",@"word",@"word"};