我取名叫「DictObj」境界對象的財產目錄「指數」是這樣的:如何按列表對Realm結果順序進行排序?
NSArray *listIDs = @[@1000,@0,@100,@4];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"index IN %@",listIDs];
self.fetchedResults = [DictObj objectsInRealm:realm withPredicate:predicate];
我只是取的結果,但它通過主鍵「指數」自動順序,我想通過「listIDs保持秩序」。所以,我創建sortDescriptor並嘗試自定義排序像下面,但它與錯誤崩潰:「終止應用程序由於未捕獲的異常‘NSInvalidArgumentException’,原因是:「 - [NSSortDescriptor屬性]:無法識別的選擇發送到實例0X」
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"index" ascending:NO comparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
NSNumber *num1 = [NSNumber numberWithInteger:(NSInteger)obj1];
NSNumber *num2 = [NSNumber numberWithInteger:(NSInteger)obj2];
NSInteger listIndex1 = [listIDs indexOfObject:num1];
NSInteger listIndex2 = [listIDs indexOfObject:num2];
return listIndex1 < listIndex2;
}];
self.fetchedResults = [[DictObj objectsInRealm:realm withPredicate:predicate] sortedResultsUsingDescriptors:@[sortDescriptor]];
//Model
@interface DictObj : RLMObject
@property NSInteger index;
@property NSString *name;
@end
如何自定義按Realm中的列表排序結果順序?
謝謝!當它僅支持按屬性排序時非常難過。我希望它會很快更新,至少在「IN列表」的情況下保持秩序。 –