在 Objective-C 中将对象添加到 NSArray

addObject to NSArray in Objective-C

如何使用这段代码将对象添加到 NSArray?我在尝试这样做时收到此错误消息。

NSArray *shoppingList = @[@"Eggs", @"Milk"];
NSString *flour = @"Flour";
[shoppingList addObject:flour];
shoppingList += @["Baking Powder"]

错误信息

/Users/xxxxx/Documents/iOS/xxxxx/main.m:54:23: No visible @interface for 'NSArray' declares the selector 'addObject:'

您不能将对象添加到 NSArray。请改用 NSMutableArray :)

无法更改您的数组,因为使用此

定义为 NSArray which is inmutable (you can't add or remove elements) Convert it to a NSMutableArray
NSMutableArray *mutableShoppingList = [NSMutableArray  arrayWithArray:shoppingList];

那你可以

[mutableShoppingList addObject:flour];

addObject 适用于 NSMutableArray,不适用于 NSArray,后者是不可变的。

如果您可以控制您创建的数组,请 shoppingList NSMutableArray:

NSMutableArray *shoppingList = [@[@"Eggs", @"Milk"] mutableCopy];
[shoppingList addObject:flour]; // Works with NSMutableArray

否则,使用效率较低

shoppingList = [shoppingList arrayByAddingObject:flour]; // Makes a copy

NSArray 没有 addObject: 方法,为此你必须使用 NSMutableArrayNSMutableArray用于创建动态数组。

NSArray *shoppingList = @[@"Eggs", @"Milk"];
NSString *flour = @"Flour";

NSMutableArray *mutableShoppingList = [NSMutableArray arrayWithArray: shoppingList];
[mutableShoppingList addObject:flour];

或者

NSMutableArray *shoppingList = [NSMutableArray arrayWithObjects:@"Eggs", @"Milk",nil];
NSString *flour = @"Flour";
[shoppingList addObject:flour];