簡體   English   中英

Obj-c - 在字典中對數組進行排序?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM