如果删除request.sortDescriptors = sortDescriptors,它就可以工作。
我必须做一些疯狂愚蠢的事情。但即使走了几次,我仍然看不到它。 index是一个非可选的Integer32,默认值为1.
- (void)awakeFromNib {
[self defaultData];
}
- (void)defaultData {
NSManagedObjectContext* moc= self.managedObjectContext; // all code with this
[NSEntityDescription insertNewObjectForEntityForName:@"Envelope"
inManagedObjectContext:moc];
NSFetchRequest* request = [NSFetchRequest
fetchRequestWithEntityName:@"Envelope"];
NSArray* sortDescriptors= [NSArray arrayWithObject:@"index"];
request.sortDescriptors= sortDescriptors;
NSError* error = nil;
NSArray* results = [moc executeFetchRequest:request error:&error];
}
这是我的崩溃:
-[__NSCFConstantString key]: unrecognized selector sent to instance 0x240f4
尝试删除“iPhone模拟器”文件夹。尝试删除并重新创建xcdatamodeld。也许是我的nib文件泄漏(虽然看不到任何东西)。试过gcc(目前Apple LLVM 3.1)。我已经尝试将所有内容移到新项目中。我尝试过一个完全新鲜的项目。在尝试获取之前,我已经尝试保存上下文。
我已经知道我会讨厌这个答案。这将是愚蠢的,我会感到愚蠢,但我还需要另一双眼睛。
由于 格雷格
答案 0 :(得分:4)
sortDescriptors
应该是NSSortDescriptor
的数组;您的sortDescriptors
只有@"index"
(NSString
)。试试这个:
NSArray* sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"index" ascending:NO]];
request.sortDescriptors = sortDescriptors;