0

NSDictonaryinを含む plist がありNSDictonary、 sub からデータを取得する簡単な方法があるかどうか疑問に思いますNSDictonary

これは私のplistがどのように見えるかの写真です: 私のリスト

NSDictonary's PistolMagnumおよびからデータを取得したいShotGun

このような NSDictonary にはメソッドがあると思いましたがdictonaryForKey、存在せず、似たようなものを見つけることができません。

NSString *plistURL = [[NSBundle mainBundle] pathForResource:@"Guns" ofType:@"plist"];
NSDictionary *guns = [[NSDictionary alloc] initWithContentsOfFile:plistURL];
NSArray *array = [dict allValues];
NSDictionary *pistol = [[NSDictionary alloc] initWithDictionary:array[0]];
NSNumber *number = [newDict valueForKey:@"Damage"];

または、に値を設定する方法はありstructますか?

4

2 に答える 2

1

キー値コーディングを使用:

NSString *plistURL = [[NSBundle mainBundle] pathForResource:@"Guns" ofType:@"plist"];
NSDictionary *guns = [[NSDictionary alloc] initWithContentsOfFile:plistURL];
NSDictionary *pistol = [guns valueForKeyPath:@"Pistol"];

または、ダメージを直接受けたい場合:

NSNumber *damage = [guns valueForKeyPath:@"Pistol.Damage"];

ドキュメントから:

- (id)valueForKeyPath:(NSString *)keyPath

指定されたキー パスによって識別される派生プロパティの値を返します。デフォルトの実装では、valueForKey: を使用して各関係の宛先オブジェクトを取得し、valueForKey: メッセージの結果を最終的なオブジェクトに返します。

于 2013-08-30T13:49:22.817 に答える