1

いくつかのオブジェクトがあるとしましょう:

@interface City : NSObject {
    NSString  *name;
    NSString  *country;
    int       yearFirstTimeVisited;
}

オブジェクトの配列に格納されているもの:

city = [[City alloc] initWithName:@"London":@"UK",2002];
[pickerValues addObject:city];
city = [[City alloc] initWithName:@"Paris":@"France",2003];
[pickerValues addObject:city];
city = [[City alloc] initWithName:@"LA":@"USA",2003];
[pickerValues addObject:city];

次に、都市をピッカー ホイールにロードします。当然、これを手動で行うことができます:

pickerValues = [[NSMutableArray alloc] initWithObjects:@"London",@"Paris", @"LA",nil];

しかし、これにより、コードで維持する必要がある 2 つのデータ セットが発生します。より良い選択肢があると確信しています。ウェブを検索しましたが、何も見つかりませんでした。

ありがとう

4

2 に答える 2

3

さらに良いことに、Key-Value Codingを使用します。 -[NSArray valueForKey:]あなたのためにループを行います。

NSArray* pickerNames = [pickerValues valueForKey:@"name"];
于 2012-04-12T17:09:04.603 に答える
2

ピッカー用の新しい配列を作成できます。

NSMutableArray *pickerNames = [NSMutableArray arrayWithCapacity:[pickerValues count]];
for(City *city in pickerValues){
    [pickerNames addObject:[city name]];
}

VCCityだけでなく、のようにカスタムクラスのプレフィックスを付けることもベストプラクティスCityです。私はVCあなたのユーザー名から選びましたが、プロジェクト名から文字を選ぶのが一般的です。

于 2012-04-12T08:52:14.680 に答える