Nam*_*cir 1 arrays objective-c ios
我有一个字符串数组:
NSArray *names;
names = [NSArray arrayWithObjects:
@"FirstList",
@"SecondList",
@"ThirdList",
nil];
Run Code Online (Sandbox Code Playgroud)
我正在尝试将此字符串数组的元素分配给字符串变量,如下所示:
NSString *fileName = names[0]; // "Incompatible types in initialization"
Run Code Online (Sandbox Code Playgroud)
或铸造
NSString *fileName = (NSString)names[0]; // "Conversion to non-scalar type requested"
Run Code Online (Sandbox Code Playgroud)
我正在尝试这样做,所以我可以在一个以字符串作为参数的方法中使用该字符串,例如:
NSString *plistPath = [bundle pathForResource:filetName ofType:@"plist"];
Run Code Online (Sandbox Code Playgroud)
有没有办法将字符串数组的元素分配给字符串变量?
names[0].但在提出这个问题的时候,它给出了这个问题中提到的错误.您不使用C数组表示法来访问NSArray对象.使用-objectAtIndex:方法作为第一个示例:
NSString *fileName = [names objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)
原因是NSArray不是"Objective-C的一部分".它只是一个由Cocoa提供的类,就像你可以编写的类一样,并且没有特殊的语法特权.
NSArray是一个专门的数组类,不像C数组.要引用其内容,请向其发送objectAtIndex:消息:
NSString *fileName = [names objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)
如果要执行显式转换,则需要转换为NSString *指针,而不是NSString:
NSString *fileName = (NSString *)[names objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)