我刚进入Obj C,我正在寻找创建一个MKAnnotations数组。
我已经创建了名为TruckLocation
的MKAnnotation类,其中包含名称,描述,纬度和经度。
这是我到目前为止所拥有的数组:
NSMutableArray* trucksArray =[NSMutableArray arrayWithObjects: @[<#objects, ...#>] nil];
答案 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
来避免更多步骤。