1

嗨,我创建了一个填充了 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 

我该如何解决?

编辑:

我的清单:

<?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>
4

2 回答 2

0

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

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

于 2012-06-26T18:47:29.873 回答
0

像这样格式化您的数据(请注意,您可以通过创建一个包含数组的 .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:)];
于 2012-06-26T18:52:28.707 回答