繁体   English   中英

在Objective-C中将addObject添加到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:'

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];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM