UItableView plist data ordering


嗨,我

创建了一个填充了plist数据的表视图,我需要对单元格重新排序,我的意思是而不是像这样显示数据:

1
2
3
4
5

应该是这样的:

5
4
3
2
1

我正在使用此代码:

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"self" ascending:NO];
    titles =  [[titles sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]] retain]; 

在这种方法中:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

但结果是这样的

1
5
2
4
3 

我该如何解决它?

EIDTED :

我的清单 :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
    <string>1</string>
    <string>2</string>
    <string>3</string>
    <string>4</string>
    <string>5</string>
</array>
</plist>

创建排序描述符时将ascending:NO更改为ascending:YES

为了提供更多建议,您可能需要发布更多代码。您应该发布如何实际填充充当数据源的数据结构,以及如何在cellForRowAtIndexPath中使用该数据结构。

像这样格式化数据(请注意,您可以通过创建一个包含数组的 .plist 来执行此操作)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Title of Array</key>
    <array>
        <string>1</string>
        <string>2</string>
        <string>3</string>
        <string>4</string>
        <string>5</string>
    </array>
</dict>
</plist>

然后使用此代码获取它

NSDictionary *data = [[NSDictionary alloc] initWithContentsOfFile:DataPath];
NSArray *array = [[names allKeys] sortedArrayUsingSelector:@selector(compare:)];

最新更新