我有一个字典数组(self.filteredData),并且我正在尝试对字典进行排序,以便将其中键包含值YES的字典放在表视图的顶部:
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会在调试时填充,并以正确的排序顺序返回(上面的数据将放入表中)。
为了正确获取数组数据,此行应该是什么样?
答案 0 :(得分:0)
您正在尝试访问数组的属性,而不是特定的索引,请尝试以下操作:
[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
}