1

我有一个 plist 文件,其中包含 6 个项目。

在此处输入图像描述

当我将它加载到一个数组中并在表格视图中显示它时,它没有像上面那样排序,看起来像这样:

在此处输入图像描述

这是我正在使用的代码:

NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"ghazal2" ofType:@"plist"];
myDictionary = [[NSDictionary alloc] initWithContentsOfFile:plistPath];
myArray = [myDictionary allKeys];

我使用时它仍然未排序allValues

我怎样才能使它正确?

4

2 回答 2

1

据我了解,NSDictionary(具有讽刺意味)不会以任何特定方式(字母、数字、值、索引等)从 plist 中对项目进行排序,您必须使用 NSArray 才能保留 plist 中的顺序.

我无法修复我的,但这个链接似乎显示其他人已经......

Plist 数组到 NSDictionary

于 2012-06-18T03:25:57.147 回答
0

这是解决方案:

- (void)viewDidLoad
{
    [super viewDidLoad];

    if (!myArray2) // myArray2 is NSMutableArray
    {
        myArray2 = [[NSMutableArray alloc] init];
    }

    NSString *path = [[NSBundle mainBundle] pathForResource:@"list" ofType:@"plist"];
    NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path];

    NSArray *sortedArray = [[dict allKeys] sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];

    for(NSString *key in sortedArray) 
    {      
        [myArray2 addObject:[dict objectForKey:key]];
    }

    for(NSString *key in myArray2) 
    {      
        NSLog(@"it is: %@", key);
    }   
}
于 2012-06-12T05:44:31.873 回答