12

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

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

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

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

6 回答 6

18

Yore 试图将 2 种不同的语法结合起来处理相似但不同的事情。您似乎也没有任何注释实例。

创建一些实例

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

然后我们可以添加它们

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

或者

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

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

于 2013-09-03T20:14:20.343 回答
16

好:

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

[array addObject:a];
于 2013-09-03T20:14:53.527 回答
8
NSMutableArray *array = [NSMutableArray alloc] init];
[array addObject:myObject];

其中 myObject 是您的自定义类的对象。

于 2013-09-03T20:14:33.153 回答
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];
于 2013-09-04T04:54:06.473 回答
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];

希望这能回答您的问题

于 2013-09-03T20:23:58.623 回答
0
TruckLocation *loc1=...;
TruckLocation *loc2=...;
NSMutableArray *truckArray=[[NSMutableArray alloc]initWithObjects:loc1,loc2];

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

于 2016-05-03T05:27:35.163 回答