IBActionでNSFe​​tchedResultsControllerをソートする

私は私のテーブルビューで私のデータを並べ替えるしたい。 IBActionでUIButtonsを呼び出してソートを呼び出します。
私はsortKeyを含む文字列を作成しました。私はキーを設定して、fetchedResultsControllerを再度呼び出して、テーブルビューをソートします。

問題は、fetchedResultsControllerメソッドが呼び出されず、並べ替えが機能しないことです。
 ここに私のコードです:

- (IBAction) actionSortCardColor:(id) sender {
    XLog(@"");
    sortString = @"colorOrder";
    [self fetchedResultsController];

    [self actionRemoveSortView:sender];
}    

ここで私のfetchedResultsControllerメソッド:

- (NSFetchedResultsController *)fetchedResultsController
{

[...]


NSPredicate *inboxPred = [NSPredicate predicateWithFormat:@"archived == 0"];

// Set the batch size to a suitable number.
[fetchRequest setFetchBatchSize:20];
[fetchRequest setPredicate:inboxPred];

XLog(@"sortString: %@", sortString);
if (sortString == nil) {
    sortString = [[NSString alloc] initWithString:@"sortingOrder"];
}

NSSortDescriptor *sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"setTitle" ascending:YES] autorelease];
NSSortDescriptor *sortDescriptor2 = [[[NSSortDescriptor alloc] initWithKey:sortString ascending:YES] autorelease];
NSArray *sortDescriptors = [[[NSArray alloc] initWithObjects:sortDescriptor, sortDescriptor2, nil] autorelease];

[fetchRequest setSortDescriptors:sortDescriptors];

[...]
}  
0
まったく。私が行ったことは、IBACtionで__fetchedResultsController ivarをnilに設定しているので、ソートが動作しています(fetchedResultsControllerメソッドが入力されます)。しかし、これは正しい方法ではありません。
追加された 著者 brush51,
つまり、すでに結果を取得していますが、ソートされていません。ユーザーがボタンをタップすると、ソートされ、同じ結果がソートされた状態で表示されます。右?
追加された 著者 Canopus,

1 答え

あなたはテーブルビューにこれらの変化を知ることができるのはどこですか?テーブルビューインスタンスのデータをリロードする必要があります。 [tableView reloadData];

__fetchedResultsControllerをnilに設定すると、スコープ内にないため、UITableビューを変更することはできません。

1
追加された