NSDictionaryの初期化

kschins

以下は私の.hファイルにあります:

    NSDictionary *originalValues;
    @property (nonatomic, retain) NSDictionary *originalValues;

これは、NSDictionaryを初期化するための.mファイルです。

@synthesize originalValues;

- (void)viewDidLoad {

// copy original values when view loaded
originalValues = [[NSDictionary alloc] initWithObjectsAndKeys:place.city, @"city", place.cuisine, @"cuisine",
                place.latitude, @"latitude", place.longitude, @"longitude", place.name, @"name", place.rating,
                @"rating", place.state, @"state", place.street, @"street", place.telephone, @"telephone",
                place.timesVisited, @"times visited", place.uppercaseFirstLetterOfName, @"first letter", 
                place.website, @"website", place.zipcode, @"zipcode", nil];
}

問題は、最初の4つのオブジェクトとキーのみが追加されることです。その後、place.name、@ "name"で始まる辞書には追加されません。辞書全体でNSLogを実行し、出力されたのは前述の最初の4つの値だけだったので、IIはplace.nameでNSLogを実行し、値を出力しているので、このキー/値に対しても何かを出力する必要があることがわかります。ペア。ここに欠けているものはありますか?すべての値が最初にNSDictionaryに追加されないのはなぜですか?

ジョー

それらが追加されない理由は、辞書の終わりを示すオブジェクトがnilであるためです。各オブジェクトがそうnilはないことを確認する必要があり、そうである場合は[NSNull null]、その代わりに使用できますself.originalValues = ...適切なメモリ管理にも使用します。辞書を使用するものがNSNull値をチェック/処理できることを確認してください

使用例gnu ternary extension

self.originalValues = [[NSDictionary alloc] initWithObjectsAndKeys:
                         place.city ?: [NSNull null], @"city",
                         place.cuisine ?: [NSNull null], @"cuisine",
                         place.latitude ?: [NSNull null], @"latitude",
                         place.longitude ?: [NSNull null], @"longitude",
                         place.name ?: [NSNull null], @"name",
                         place.rating ?: [NSNull null], @"rating",
                         place.state ?: [NSNull null], @"state",
                         place.street ?: [NSNull null], @"street",
                         place.telephone ?: [NSNull null], @"telephone",
                         place.timesVisited ?: [NSNull null], @"times visited",
                         place.uppercaseFirstLetterOfName ?: [NSNull null], @"first letter", 
                         place.website ?: [NSNull null], @"website",
                         place.zipcode ?: [NSNull null], @"zipcode",
                         nil];

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事