私はフェッチデータを常に同じ順序で取得しようとしています。これは、要求するたびに別の並べ替えられた配列を取得するため、ID で並べ替えようとしていますが、できませんでした。
私の状況:私は2つのモデルを持っています.FORMとFORMCOMPONENT 1つのFORMには、これを行うと多くのFORMCOMPONENTがあります
Form *form = ...;
[form formComponents]; //I get all the components but each time I run I get with a differente order
ORDER のフィールドがない場合、これをどのように注文すると思いますか? Androidでは、IDでこれを行いました..そのため、この提案にはフィールドがありません。
sortWithComparator を使用して配列で注文しようとしましたが、番号 ID を取得することが許可されていないため、これを行うことはできません (彼が [obj objectID] で指定した文字列全体ではなく、番号のみ)。sqlite3 を使用してデータベースを表示すると、そこに番号しか表示されないため、これは面白いです。
私が考えた別の方法は、次のように、FORM コンポーネント ([form formComponents]) ではなく、新しいリクエストで FORMCOMPONENT を直接取得することです。
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"FormComponent" inManagedObjectContext:[appDelegate managedObjectContext]];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entity];
//SOME PREDICATE WITH THE FORM
[request setPredicate:predicate];
NSError *error = nil;
NSMutableArray *arrayComps = (NSMutableArray*) [[appDelegate managedObjectContext] executeFetchRequest:request error:&error];
それで、誰かアイデアがありますか?ありがとう。
- - 編集 - -
PS: 注文用に別のフィールドを作成する問題を回避したくありません。他に解決策がない場合は、これを行います。