辞書内の同一のキーに対して一意の値を返すコードを次に示します。現在、私のログでは、「objects array:」は 6 (3 セット (同一のキーを持つ 2 つのオブジェクト)) であり、「dictionary:」は各セット (3 つの一意の値) から 1 つのオブジェクトの値を返します。私の「for」ステートメントでは:
for (id key in dict)
{
self.titlesArray = [NSMutableArray arrayWithObject:dict];
NSLog(@"titles: %@", self.titlesArray);
self.titlesArray = [[NSMutableArray alloc] initWithObjects:[dict valueForKey:key] ,nil];
NSLog(@"titles: %@", self.titlesArray);
}
最初のログは、3 つの一意の値とキーを出力します。2番目は、単一のキーに対して単一の値のみを出力します(これは私が望むものです..しかし、3つのキー値すべてが必要です)したがって、私の問題は、辞書から一意の値ごとにキーを取得して追加できないことです私のtitlesArrayに。
for (id key in dict)
{
self.titlesArray = [NSMutableArray arrayWithObject:dict];
self.titlesArray = [[NSMutableArray alloc] initWithObjects:[dict valueForKey:key] ,nil];
コードが正しくありません。
PFQuery *query = [PFQuery queryWithClassName:@"Images"];
[query whereKey:@"recipientIds" equalTo:[[PFUser currentUser] objectId]];
[query orderByDescending:@"createdAt"];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (error) {
NSLog(@"Error: %@ %@", error, [error userInfo]);
}
else {
// found messages!
self.objectsArray = objects;
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
for(id obj in self.objectsArray){
PFObject *key = [obj valueForKey:@"titleLabel"];
if(![dict objectForKey:key]){
[dict setValue:key forKey:[obj valueForKey:@"titleLabel"]];
}
}
for (id key in dict) {
self.titlesArray = [NSMutableArray arrayWithObject:dict];
NSLog(@"titles: %@", self.titlesArray);
self.titlesArray = [[NSMutableArray alloc] initWithObjects:[dict valueForKey:key] ,nil];
NSLog(@"titles: %@", self.titlesArray);
}
NSLog(@"dictionary: %@", dict);
NSLog(@"Objects array is %d", [self.objectsArray count]);
[self.pickerView reloadComponent:0];