web-dev-qa-db-fra.com

Comment créer un NSMutableArray et lui assigner un objet spécifique?

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];
8
novicePrgrmr

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.

17
Wain

Bien:

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

[array addObject:a];
11
elio.d
NSMutableArray *array = [NSMutableArray alloc] init];
[array addObject:myObject];

Où myObject est l'objet de votre classe personnalisée.

6
Juan Catalan

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];
1
Vinodh

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 

0
Macrosoft-Dev
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.

0
soorej babu