私はplistを持っています、そのplistから可変辞書に要素を追加したいです。最初にplistのユーザー名をチェックし、現在の名前が同じかどうかを確認してから、その辞書rom plistにすべての値を追加し、割り当てます同じキー?
for(int i=0;i<[displayList count];i++)
{
if([[[data valueForKey:@"username"] objectAtIndex:i] isEqualToString:user])
{
[finalBooks setValue:[[data valueForKey:@"ID"] objectAtIndex:i] forKey:@"ID"];
[finalBooks setValue:[[data valueForKey:@"name"] objectAtIndex:i] forKey:@"name"];
[finalBooks setValue:[[data valueForKey:@"Place"] objectAtIndex:i] forKey:@"Place"];
[finalBooks setValue:[[data valueForKey:@"username"] objectAtIndex:i] forKey:@"username"];
}
}
[displayList count]この値は7なので、各値は6回置き換えられ、最終的な値のみを取得しますすべての値がユーザー名に一致する必要がありますiその可変辞書
辞書の配列を作成する必要があると思います。このようにfinalBooks辞書をNSMutableArrayに追加するだけです
NSMutableArray *finalArray = [[NSMutableArray alloc]init];
(int i=0;i<[displayList count];i++)
{
if([[[data valueForKey:@"username"] objectAtIndex:i] isEqualToString:user])
{
[finalBooks setValue:[[data valueForKey:@"ID"] objectAtIndex:i] forKey:@"ID"];
[finalBooks setValue:[[data valueForKey:@"name"] objectAtIndex:i] forKey:@"name"];
[finalBooks setValue:[[data valueForKey:@"Place"] objectAtIndex:i] forKey:@"Place"];
[finalBooks setValue:[[data valueForKey:@"username"] objectAtIndex:i] forKey:@"username"];
[finalArray addObject:finalBooks];
}
}
そして、あなたは辞書の配列を取得します。幸運を !!
キーが同じ場合、NSMutableDictionaryのsetValueメソッドが値を置き換えます。したがって、実行できるのは、配列または辞書のNSMutableDictionaryを使用することです。
NSMutableDictionary *userDictionary=[[NSMutableDictionary alloc]init];
(int i=0;i<[displayList count];i++)
{
if([[[data valueForKey:@"username"] objectAtIndex:i] isEqualToString:user])
{
[finalBooks setValue:[[data valueForKey:@"ID"] objectAtIndex:i] forKey:@"ID"];
[finalBooks setValue:[[data valueForKey:@"name"] objectAtIndex:i] forKey:@"name"];
[finalBooks setValue:[[data valueForKey:@"Place"] objectAtIndex:i] forKey:@"Place"];
[finalBooks setValue:[[data valueForKey:@"username"] objectAtIndex:i] forKey:@"username"];
[userDictionary setObject:finalBooks forKey:user];
}
}
すべてを1つの辞書にまとめたい場合は、NSString stringWithFormat:@"ID+%@",username],...[NSString stringWithFormat:@"username+%@",username]
などの一意のキーを使用することをお勧めします。
しかし、それは厄介に見えます:)