您好我创建了一个填充了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:
我的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">
<array>
<string>1</string>
<string>2</string>
<string>3</string>
<string>4</string>
<string>5</string>
</array>
</plist>
答案 0 :(得分:0)
在创建排序描述符时将ascending:NO
更改为ascending:YES
。
要提供更多建议,您可能需要发布更多代码。您应该发布如何实际填充充当数据源的数据结构的方式,以及如何在cellForRowAtIndexPath
中使用该数据结构。
答案 1 :(得分: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:)];