Je commence tout juste à entrer dans Obj C et je cherche à créer un tableau de MKAnnotations.
J'ai déjà créé la classe MKAnnotation appelée TruckLocation
qui contient le nom, la description, la latitude et la longitude.
Voici ce que j'ai jusqu'à présent pour le tableau:
NSMutableArray* trucksArray =[NSMutableArray arrayWithObjects: @[<#objects, ...#>] nil];
Vous avez essayé de combiner 2 syntaxes différentes pour des choses similaires mais différentes. Vous ne semblez pas non plus avoir de cas de vos annotations.
Créer des instances
TruckLocation *a1 = ...;
TruckLocation *a2 = ...;
Ensuite, nous pouvons les ajouter
NSMutableArray *trucksArray = [NSMutableArray arrayWithObjects:a1, a2, nil];
Ou
NSMutableArray *trucksArray = [@[a1, a2] mutableCopy]
C'est une forme plus courte et plus moderne, mais vous devez la rendre mutable car cela créera une instance immuable.
Bien:
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];
Où myObject est l'objet de votre classe personnalisée.
Essayez quelque chose comme ça
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];
Supposons que vous initialisiez les objets et assigniez des valeurs de la manière suivante:
TruckLocation *truckLocationOne = [[TruckLocation alloc]initWithAnnotation:annotation
reuseIdentifier:annotationIdentifier];
truckLocationOne.name = @"name";
TruckLocation *truckLocationTwo = [[TruckLocation alloc]initWithAnnotation:annotation
reuseIdentifier:annotationIdentifier];
truckLocationTwo.name = @"name";
Ces objets seraient ajoutés au tableau temp de la manière suivante:
1) NSMutableArray temp = [[NSMtableArray alloc]initWithObjects:truckLocationOne,truckLocationTwo,nil];
2) NSMutableArray temp = [[NSMtableArray alloc]init];
[temp addObject:truckLocationOne];
[temp addObject:truckLocationTwo];
J'espère que cela répond à votre requête
TruckLocation *loc1=...;
TruckLocation *loc2=...;
NSMutableArray *truckArray=[[NSMutableArray alloc]initWithObjects:loc1,loc2];
vous pouvez ajouter des objets au moment de l'initialisation. vous pouvez ainsi ajouter des objets dans le code d’attribution. vous pouvez aussi éviter plus de temps pour écrire avec addObject
.