0

Core Data 関係の順序付けに行き詰まっています。対多の関係がありますが、克服できない問題は、あるビューでリレーショナル エンティティを並べ替えると、それらが属するすべてのビューでそれらを並べ替えるということです。

例:Peopleに追加され、メソッドactivity1を使用してランダムに並べ替えられます。moveRowAtIndexPathそれらの同じ人が に追加されactivity2、同じように並べ替えられactivity1ます。どうすればこれを止めることができますか?

関連コード:

 - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
{
    NSUInteger fromRow = [fromIndexPath row];
    NSUInteger toRow = [toIndexPath row];

    id object = [[eventAthletes objectAtIndex:fromRow] retain];
    [eventAthletes removeObjectAtIndex:fromRow];
    [eventAthletes insertObject:object atIndex:toRow];

    int i = 0;
    for (object in eventAthletes)
    {
        [object setValue:[NSNumber numberWithInt:i++] forKey:@"athleteDisplayOrder"];
    }

    [self saveContext];

    [object release];
}

モデルを更新athleteDisplayOrderし、キーを保存せずに使用することで、新しいイベントで新たに開始できると考えて属性を一時的にしました。ダイスなし。

4

1 に答える 1

0

同じ順序は予想される動作です。順序を「ランダム化」したい場合は、ランダムなathleteDisplayOrder属性を再割り当てして明示的に行う必要があります。

編集:

イベントごとにユーザー定義可能な特別なアスリートの順序が必要な場合、これを解決する 1 つの方法はEventAthletes、イベントとアスリートの両方に対 1 関係を持ち、表示順序属性も含む新しいエンティティを作成することです。

編集終了

ところで、テーブル ビューに表示するためのコア データを含む追加のデータ配列を使用しています。NSFetchedResultsControllerを使用すると、テーブル ビュー データソースをより効率的に管理できることをご存知ですか?

于 2012-12-02T11:50:41.617 に答える