我有一个这样的字符串数组:
NSArray *names;
names = [NSArray arrayWithObjects:
@"FirstList",
@"SecondList",
@"ThirdList",
nil];
我正在尝试将此字符串数组的一个元素分配给一个字符串变量,如下所示:
NSString *fileName = names[0]; // "Incompatible types in initialization"
或类型转换
NSString *fileName = (NSString)names[0]; // "Conversion to non-scalar type requested"
我正在尝试这样做,因此我可以在将字符串作为参数的方法中使用该字符串,例如:
NSString *plistPath = [bundle pathForResource:filetName ofType:@"plist"];
有没有办法将字符串数组的元素分配给字符串变量?
2014 年更新:这篇文章中的代码现在实际上可以工作,因为框架和编译器中添加了特殊的语法支持,用于索引 NSArray,如
names[0]
.但是在提出这个问题时,它给出了这个问题中提到的错误。
最佳答案
您不使用 C 数组表示法来访问 NSArray 对象。将 -objectAtIndex: 方法用于您的第一个示例:
NSString *fileName = [names objectAtIndex:0];
原因是 NSArray 不是“Objective-C 的一部分”。它只是 Cocoa 提供的一个类,很像您可以编写的任何类,并且没有特殊的语法特权。
关于Objective-C 字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5518658/