如何使用unichars声明NSArray?

时间:2011-10-24 09:50:43

标签: objective-c nsarray

我想创建一个类似以下的NSArray:

NSArray * alphabets = [NSArray arrayWithObjects:'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',nil];

但在执行期间我会得到BAD_ACCESS_ERROR。

我怎样才能弄明白并使这行代码正常工作?

问候

2 个答案:

答案 0 :(得分:2)

您只能添加NSArray个对象。例如,

NSArray * alphabets = [NSArray arrayWithObjects:@"a",@"b",@"c",@"d",@"e",nil];

但是'a'不是一个对象。当您编写@"a"时,编译创建NSString类型的对象并将其添加到您的array

答案 1 :(得分:2)

'a'无效NSObject,它的原始类型char

使用[NSArray arrayWithObjects:...]你需要传递它的对象

像这样:

NSArray * alphabets = [NSArray arrayWithObjects:@"a",@"b",@"c",@"d",@"e",nil];

或使用数组的C / C ++表示法

char[] alphabet ....