web-dev-qa-db-ja.com

NSMutableArrayを作成し、それに特定のオブジェクトを割り当てる方法は?

私はObj Cに入ったばかりで、MKAnnotationsの配列を作成しようとしています。

名前、説明、緯度、経度を含むTruckLocationというMKAnnotationクラスをすでに作成しています。

これが私がこれまでに配列に対して持っているものです:

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

似ているが異なるものに対して2つの異なる構文を組み合わせようとしている。また、アノテーションのインスタンスがないようです。

いくつかのインスタンスを作成する

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

次に、それらを追加できます

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

または

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

これはより短くよりモダンな形式ですが、不変のインスタンスを作成するため、変更可能にする必要があります。

17
Wain

上手:

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

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

ここで、myObjectはカスタムクラスのオブジェクトです。

7
Juan Catalan

このようなものを試してください

  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

次の方法でオブジェクトを初期化し、値を割り当てるとします。

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

これがあなたの質問に答えることを願っています

0
Macrosoft-Dev
TruckLocation *loc1=...;
TruckLocation *loc2=...;
NSMutableArray *truckArray=[[NSMutableArray alloc]initWithObjects:loc1,loc2];

初期化時にオブジェクトを追加できます。これにより、割り当てコード内にオブジェクトを追加できます。また、addObjectを使用して書き込むためのステップ数を増やす必要がなくなります。

0
soorej babu