如何使用此代码将对象添加到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:'
addObject
在NSMutableArray
工作,而不是NSArray
,这是不可改变的。
如果您可以控制您创建的数组,请生成shoppingList
NSMutableArray
:
NSMutableArray *shoppingList = [@[@"Eggs", @"Milk"] mutableCopy];
[shoppingList addObject:flour]; // Works with NSMutableArray
否则,使用效率较低
shoppingList = [shoppingList arrayByAddingObject:flour]; // Makes a copy
您无法将对象添加到NSArray中。使用NSMutableArray而不是:)
您的数组无法更改,因为它被定义为NSArray
,它是不可变的(您无法添加或删除元素)使用此转换为NSMutableArray
NSMutableArray *mutableShoppingList = [NSMutableArray arrayWithArray:shoppingList];
那你可以做
[mutableShoppingList addObject:flour];
NSArray
没有addObject:
方法,为此你必须使用NSMutableArray
。 NSMutableArray
用于创建动态数组。
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];