Objective-C 字符串数组

标签 objective-c arrays ios

我有一个这样的字符串数组:

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/

相关文章:

ios - 如何使用按钮内的 touchesEnded 获取触摸的位置

ios - UIScrollView 中的多个 AVPlayer - 只显示了其中的 16 个

objective-c - 标签不是从左上角开始

javascript - window.close() 和 iOS

iphone - iOS:检测主运行循环之外的低内存崩溃

ios - 是否可以通过编程方式确定 iOS 目标

python - 如何在 python 中创建列表数组?

arrays - Fortran 中虚拟参数显式形状数组的声明

objective-c - 在 Objective-C 中逗号分隔的字符串到 NSArray

ios - xcode 安装应用程序的代码