在 Objective-C 中,如何做类似的事情是
int array[] = {1, 2, 3, 4};
在纯C中?
我需要用尽可能少的开销(代码和/或运行时)的 NSStrings 填充 NSArray。
像在编译时那样创建数组。那是因为它不是"编译时常量"。相反,您可以执行以下操作:
static NSArray *tArray = nil;
-(void)viewDidLoad {
[super viewDidLoad];
tArray = [NSArray arrayWithObjects:@"A", @"B", @"C", nil];
}
如果你预编译这个真的很重要,那么我想你可以创建一个测试项目,创建你需要的数组(或任何对象),填充它,然后使用 NSKeyedArchiver 序列化它(这会将其保存到一个文件中),然后将该文件包含在你的应用程序中。然后,您需要使用 NSKeyedUnarchiver 取消存档对象以供使用。我不确定这两种方法之间的性能差异是什么。此方法的一个优点是,如果需要初始化包含大量对象的数组,则没有大块代码。
使用这个
NSArray *array = [NSArray arrayWithObjects:str1,str2, nil];
据我了解,您需要一个一维数组您可以使用 NSArray 的类方法。例如
NSString *yourString;
NSArray *yourArray = [[NSArray alloc] initWithObjects:yourString, nil];
如果您需要更多,请提供有关您的问题的更多详细信息
这么简单:NSArray<NSString*> *stringsArray = @[@"Str1", @"Str2", @"Str3", ...];
现代ObjectiveC允许泛型和文字数组。
如果你想要更短的代码,那么NSArray *stringsArray = @[@"Str1", @"Str2", @"Str3", ...];
,因为泛型是可选的,只有在访问数组元素时才有帮助,因此你可以稍后在代码中转换回模板化数组。