2

Group の束を作成しますEntities:

for (NSString *groupID in result) {
    group = [Group MR_createInContext:context];

    group.groupID = [NSNumber numberWithInteger:[groupID integerValue]];
}

次に、それらを並べ替えてリストします。

NSArray *groups = [Group MR_findAllSortedBy:@"groupID" ascending:TRUE inContext:context];

for (Group *group in groups) {
    DLog(@"group.groupID: %@", group.groupID);
    DLog(@"group: %@", group);
}

エラーが発生します:

-[__NSCFNumber caseInsensitiveCompare:]: unrecognized selector sent to instance 0x2595d2c0
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber caseInsensitiveCompare:]: unrecognized selector sent to instance 0x2595d2c0'

私のグループEntityは自動生成されます:

#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>

@interface Group : NSManagedObject

@property (nonatomic, retain) NSNumber * groupID;

@end

@interface Group (CoreDataGeneratedAccessors)

@end

Magical Record なしで同じフェッチを行うと、問題なく動作します。

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Group"];

NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"groupID" ascending:TRUE selector:nil];

NSArray *sorters = [NSArray arrayWithObject:sort];

[fetchRequest setSortDescriptors:sorters];
NSError *error = nil;

NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];

エラーが発生する理由はありますか?

4

1 に答える 1

1

そこで、github ( https://github.com/magicalpanda/MagicalRecord ) の Magical Record リポジトリを確認しましたが、使用している方法がわかりませんでした (おそらくbug、ソートされたエンティティを取得するために推奨される他の 2 つの方法を見ました。

[entity MR_findAllSortedByProperty:@"property" ascending:YES] // single property [entity MR_findAllSortedByProperty:@"oneProperty,secondProp" ascending:YES] // mutliple properties

于 2013-05-10T19:02:38.260 に答える