plistファイルからNSDictionaryの内部BOOLを復元
-
26-09-2019 - |
質問
私は辞書の配列が含まれているのplistファイルを持っています。ここではそのうちの一つです。
フレッド辞書
名前フレッド
isMale [ボックスがチェックされている]。
だから今、私はplistファイルから読み込まれた辞書と私のPersonオブジェクトを初期化しています:
-(id) initWithDictionary: (NSDictionary *) dictionary {
if (self = [super init])
self.name = [dictionary valueForKey: @"Name"];
self.isMale = ????
}
そうでない場合は、はどのように私はボックスがPLISTファイルにチェックされている場合self.isMaleがYESに設定されているように、上記のコードを仕上げる、およびNOです。辞書にはキーisMaleがない場合、好ましくは、また、NOに設定します。
解決
BOOL値は、通常のNSNumberオブジェクトに包まれたOBJ-Cコンテナに格納されています。それはあなたのケースでそうであるならば、あなたが使用してブール値を取得することができます:
self.isMale = [[dictionary objectForKey:@"isMale"] boolValue];
他のヒント
ウラジミールは右、私はちょうどにチャイムに行くと、同様のplistが存在から、それらの値ことを確認するために良いと言う、通常はデフォルト値に設定されていない場合。
よさのような何かます:
id isMale = [dictionary valueForKey:@"isMale"];
self.isMale = isMale ? [isMale boolValue] : NO;
キー「isMale」の値が辞書に存在するかどうかを確認するためにどのチェック。それがない場合、それはそれからBOOLVALUEを取得します。そうでない場合、それはNOのデフォルトにself.isMaleを設定します。
所属していません StackOverflow