如何创建NSMutableArray并为其分配特定对象?

时间:2013-09-03 20:08:12

标签: ios objective-c nsmutablearray mkannotation

我刚进入Obj C,我正在寻找创建一个MKAnnotations数组。

我已经创建了名为TruckLocation的MKAnnotation类,其中包含名称,描述,纬度和经度。

这是我到目前为止所拥有的数组:

NSMutableArray* trucksArray =[NSMutableArray arrayWithObjects: @[<#objects, ...#>]  nil];

6 个答案:

答案 0 :(得分:17)

Yore试图将2种不同的语法组合成相似但不同的东西。您似乎也没有任何注释实例。

创建一些实例

TruckLocation *a1 = ...;
TruckLocation *a2 = ...;

然后我们可以添加它们

NSMutableArray *trucksArray = [NSMutableArray arrayWithObjects:a1, a2, nil];

或者

NSMutableArray *trucksArray = [@[a1, a2] mutableCopy]

这是一种更短更现代的形式,但你需要使它变得可变,因为它会创建一个不可变的实例。

答案 1 :(得分:12)

好:

NSString *a = @"a";
NSMutableArray *array = [NSMutableArray arrayWithObjects:a,nil];
//or
NSMutableArray *array = [[NSMutableArray alloc]init]; //alloc

[array addObject:a];

答案 2 :(得分:7)

NSMutableArray *array = [NSMutableArray alloc] init];
[array addObject:myObject];

myObject是自定义类的对象。

答案 3 :(得分:1)

尝试这样的事情

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

        CLLocationCoordinate2D shopPosition = CLLocationCoordinate2DMake(allShopInfoObject.shopLatitudeValue, allShopInfoObject.shopLongitudeValue);

    MapAnnotation *mapAnnotation = [[MapAnnotation alloc] initWithCoordinates:shopPosition andTitle:allShopInfoObject.shopName andShopId:allShopInfoObject.shopId subTitle:@""];

        [annotationArray addObject:mapAnnotation];
[self.mapView addAnnotations:annotationArray];

答案 4 :(得分:0)

假设您初始化对象并按以下方式分配值:

TruckLocation *truckLocationOne = [[TruckLocation alloc]initWithAnnotation:annotation
           reuseIdentifier:annotationIdentifier];
truckLocationOne.name = @"name";

TruckLocation *truckLocationTwo = [[TruckLocation alloc]initWithAnnotation:annotation
           reuseIdentifier:annotationIdentifier];
truckLocationTwo.name = @"name";

这些对象将按以下方式添加到数组temp:

1) NSMutableArray temp = [[NSMtableArray alloc]initWithObjects:truckLocationOne,truckLocationTwo,nil];

2)    NSMutableArray temp = [[NSMtableArray alloc]init]; [temp addObject:truckLocationOne]; [temp addObject:truckLocationTwo];

希望这能回答您的问题

答案 5 :(得分:0)

TruckLocation *loc1=...;
TruckLocation *loc2=...;
NSMutableArray *truckArray=[[NSMutableArray alloc]initWithObjects:loc1,loc2];

您可以在初始化时添加对象。通过这个,您可以在分配代码中添加对象。您也可以使用addObject来避免更多步骤。