我刚刚进入 Obj C,我正在寻找创建一个 MKAnnotations 数组。
我已经创建了名为 MKAnnotation 的类TruckLocation
,其中包含名称、描述、纬度和经度。
这是我到目前为止的数组:
NSMutableArray* trucksArray =[NSMutableArray arrayWithObjects: @[<#objects, ...#>] nil];
我刚刚进入 Obj C,我正在寻找创建一个 MKAnnotations 数组。
我已经创建了名为 MKAnnotation 的类TruckLocation
,其中包含名称、描述、纬度和经度。
这是我到目前为止的数组:
NSMutableArray* trucksArray =[NSMutableArray arrayWithObjects: @[<#objects, ...#>] nil];
Yore 试图将 2 种不同的语法结合起来处理相似但不同的事情。您似乎也没有任何注释实例。
创建一些实例
TruckLocation *a1 = ...;
TruckLocation *a2 = ...;
然后我们可以添加它们
NSMutableArray *trucksArray = [NSMutableArray arrayWithObjects:a1, a2, nil];
或者
NSMutableArray *trucksArray = [@[a1, a2] mutableCopy]
这是一种更短、更现代的形式,但您需要使其可变,因为它将创建一个不可变的实例。
好:
NSString *a = @"a";
NSMutableArray *array = [NSMutableArray arrayWithObjects:a,nil];
//or
NSMutableArray *array = [[NSMutableArray alloc]init]; //alloc
[array addObject:a];
NSMutableArray *array = [NSMutableArray alloc] init];
[array addObject:myObject];
其中 myObject 是您的自定义类的对象。
试试这样的
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];
假设您通过以下方式初始化对象并赋值:
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];
希望这能回答您的问题
TruckLocation *loc1=...;
TruckLocation *loc2=...;
NSMutableArray *truckArray=[[NSMutableArray alloc]initWithObjects:loc1,loc2];
您可以在初始化时添加对象。通过这个,您可以在分配代码中添加对象。您也可以避免使用addObject
.