1
我有一個存儲在後端服務器(解析)中的鍵值爲@「titleLabel」的對象數組(圖像)。我想要做的是在pickerView中顯示標題列表,但我只想爲每個鍵匹配的@「titleLabels」組顯示一個標題。例如:如果我有五個具有titleLabel鍵的對象(圖像):'Spring Break',我只想顯示標題'Spring Break'的一個實例,而不是全部五個。我寫的代碼是我解決這個問題的最佳業餘選擇,但是我的NSLog for'titles array count'返回值爲1,當我記錄該值時,我再次獲得所有標題。從具有多個相同值的數組中返回單個鍵值?
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
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 {
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
for(id obj in self.objectsArray){
PFObject *key = [self.objectsArray valueForKey:@"titleLabel"];
if(![dict objectForKey:key]){
[dict setValue:obj forKey:key];
}
}
for (id key in dict) {
NSLog(@"key: %@, value: %@ \n", key, [dict objectForKey:key]);
NSLog(@"Objects array is %d", [self.objectsArray count]);
NSLog(@"Titles array is %d", [self.titlesArray count]);
}
[self.pickerView reloadComponent:0];
}
}];
這裏是我在一個單獨的控制器定義了我的鑰匙:
PFObject *image = [PFObject objectWithClassName:@"Images"];
[image setObject:self.releaseDate forKey:@"releaseDate"];
[image setObject:file forKey:@"file"];
[image setObject:fileType forKey:@"fileType"];
[image setObject:title forKey:@"titleLabel"];
[image setObject:deadline forKey:@"deadline"];
[image setObject:self.recipients forKey:@"recipientIds"];
[image setObject:[[PFUser currentUser] objectId] forKey:@"senderId"];
[image setObject:[[PFUser currentUser] username] forKey:@"senderName"];
[image saveInBackground];
我想起來之前轉換爲NSMutableArray的,但它拋出「不兼容的塊指針」 ...的錯誤,因爲我的知識有限,我不完全明白。我明白爲什麼它需要可變,但不是如何更新已經寫好的代碼。另外,我在解析中發現了一個'addUniqueObjectsFromArray:forKey:'操作,並試圖實現它,但即使這樣也不能正常工作。有什麼建議? –
這裏有幾個問題。你試過我的代碼嗎?此外,你不能分配(NSArray *)從arrayByAddingObject返回到NSMutableArray。這就是爲什麼我建議你使用字典對象,關於使用字典最好的部分是你可以添加一個數組對象到相應的鍵「springBreak」。因此,所有與春假相對應的圖像都在同一個地方。 –
我陷害了。是的,但它引發了一個錯誤'不兼容的指針類型發送'PFObject *'到類型'NSString'的參數在這一行的關鍵字符串'[dict setValue:obj forKey:key];'我一直沒有能夠解決它。我有點得到你對使用字典的看法,這正是我想要的......只是無法讓它工作。 (只有大約一個半月的時間,自學了iOS,沒有任何編程經驗,至少還是學會說) –