[英]Obj-c - Sorting arrays in dictionary?
我有一個字典數組(self.filteredData),我正在嘗試對字典進行排序,以便鍵中包含值為YES的字典放在我的tableview的頂部:
NSSortDescriptor *sortByName = [NSSortDescriptor sortDescriptorWithKey:@"ambassador"
ascending:NO];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortByName];
NSArray *sortedArray = [self.filteredData sortedArrayUsingDescriptors:sortDescriptors];
NSLog(@"THE SORTED VERSION %@", sortedArray);
NSString *first = [sortedArray valueForKey:@"first name"];
NSString *last = [sortedArray valueForKey:@"last name"];
NSString *area = [sortedArray valueForKey:@"neighbourhood"];
NSString *city = [sortedArray valueForKey:@"city"];
這有效,但我現在無法從每個陣列中獲取數據? 這一行:
NSString *first = [sortedArray valueForKey:@"first name"];
只需返回一個括號(。
也就是說,sortedArray在調試時填充,並以正確的排序順序返回(上面的數據進入表中)。
為了正確獲取數組的數據,這條線應該是什么樣的?
您正在嘗試訪問陣列上的屬性,而不是特定索引,請嘗試以下操作:
[sortedArray[0] valueForKey:@"first name"];
其中0
是您要訪問的索引,在本例中是第一個元素。
由於這將在TableView中,您可以根據其索引訪問元素:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *name = [this.sortedArray[indexPath.row] valueForKey:@"first name"];
// render cell below
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.