我有一个plist文件,里面有6个项目。
当我将它加载到一个数组并在表视图中显示时,它没有像上面那样排序,看起来像这样:
这是我正在使用的代码:
NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"ghazal2" ofType:@"plist"];
myDictionary = [[NSDictionary alloc] initWithContentsOfFile:plistPath];
myArray = [myDictionary allKeys];
当我使用allValues
我怎样才能做对?
答案 0 :(得分:1)
根据我的理解,NSDictionary(具有讽刺意味)不会以任何特定的方式(字母,数字,值,索引等)从plist中订购项目,您必须使用NSArray才能保留订单来自plist。
我无法修复我的,但这个链接似乎表明其他人有...
答案 1 :(得分: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);
}
}