简单的CoreData示例抛出异常

时间:2012-03-25 18:16:28

标签: objective-c xcode core-data

我觉得我有点生气了。这是非常我做的第一件事,我得到了崩溃(见下文)。崩溃是我尝试跳过executeFetchRequest的那一刻。

如果删除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)。我已经尝试将所有内容移到新项目中。我尝试过一个完全新鲜的项目。在尝试获取之前,我已经尝试保存上下文。

我已经知道我会讨厌这个答案。这将是愚蠢的,我会感到愚蠢,但我还需要另一双眼睛。

由于 格雷格

1 个答案:

答案 0 :(得分:4)

sortDescriptors应该是NSSortDescriptor的数组;您的sortDescriptors只有@"index"NSString)。试试这个:

NSArray* sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"index" ascending:NO]];
request.sortDescriptors = sortDescriptors;