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 

どうすれば修正できますか?

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>
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 に答える