21

我有一个对象(卡车)列表,其中包含填充 tableview 的各种属性。当您点击它们时,它们会转到单独的卡车页面。有一个添加按钮,可以将它们添加到另一个 tableview 中的收藏夹列表中。如何在 Cocoa 中初始化一个空的可变数组?

我有以下代码:

-(IBAction)addTruckToFavorites:(id)sender:(FavoritesViewController *)controller
{
    [controller.listOfTrucks addObject: ((Truck_Tracker_AppAppDelegate *)[UIApplication sharedApplication].delegate).selectedTruck];

}
4

7 回答 7

42

更新:

使用新语法,您可以使用:

NSMutableArray *myArray = [NSMutableArray new];

原答案:

例如:

NSMutableArray *myArray = [[NSMutableArray alloc] init];

在这里您可以找到原因(类和实例方法之间的区别)

于 2012-04-19T10:06:16.937 回答
10

基本上,有三种选择:

第一的

NSMutableArray *myMutableArray = [[NSMutableArray alloc] init];

第二

NSMutableArray *myMutableArray = [NSMutableArray new];

第三

NSMutableArray *myMutableArray = [NSMutableArray array];
于 2016-03-06T16:35:20.970 回答
4

也可以这样初始化

除了@NSSam 的答案之外, Objective C的另一种方法

NSMutableArray *myMutableArray = [@[] mutableCopy];

对于斯威夫特

let myArray = NSMutableArray()

或者

let myArray = [].mutableCopy() as! NSMutableArray;
于 2016-10-05T09:27:40.533 回答
2
NSMutableArray *arr = [NSMutableArray array];
于 2012-04-19T08:57:28.930 回答
2

我使用这种方式在Objective C中初始化一个空的可变数组:

NSMutableArray * array = [NSMutableArray arrayWithCapacity:0];
于 2018-07-01T11:01:36.867 回答
0

listOfTrucks = [NSMutableArray array];给你一个新的可变数组。

于 2012-04-19T08:57:39.023 回答
-1

在现代 Objective-C 中,它可能更短:

NSArray *array = @[];
于 2018-07-02T09:22:44.483 回答