我想创建一个类似以下的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。
我怎样才能弄明白并使这行代码正常工作?
问候
答案 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 ....