目标C使用值初始化NSMutableArray

kat*_*tit 0 objective-c

我正在学习Obj-C,这只是语法/语言问题。

考虑以下代码:

NSMutableArray *attributes = [[NSMutableArray alloc] init];
    [attributes addObject:@"H:S"];
    [attributes addObject:@"H:W"];
    [attributes addObject:@"H:AGR"];
    [attributes addObject:@"H:TPC"];
    [attributes addObject:@"H:P"];
    [attributes addObject:@"H:TI"];
    return attributes;
Run Code Online (Sandbox Code Playgroud)

有没有更短的语法来使用预设值初始化数组?

Adn*_*tab 6

您可以使用此速记语法

NSArray *attributes = @[@"H:S",@"H:W",@"H:AGR",@"H:TPC",@"H:P",@"H:TI"];
Run Code Online (Sandbox Code Playgroud)

如果您需要NSMutableArray可以执行此操作

 NSMutableArray *attributes = [@[@"H:S",@"H:W",@"H:AGR",@"H:TPC",@"H:P",@"H:TI"] mutableCopy];
Run Code Online (Sandbox Code Playgroud)

如果有很多项目,这将复制整个NSMUtableArray并将所有项目复制到这会导致性能下降,下面是第三个选项。

NSMutableArray *attributes = [[NSMutableArray alloc] initWithObjects:@"H:S", @"H:W", @"H:AGR", @"H:TPC", @"H:P", @"H:TI", nil];
Run Code Online (Sandbox Code Playgroud)