应用程序崩溃了核心数据的一个属性

时间:2013-11-07 15:55:45

标签: core-data attributes crash

我有一个非常奇怪的问题。我正在使用coredata来保存笔记。我可以访问/保存/编辑“Notes”实体的所有属性,除了一个:类别。

-(void)editCategory {

    NSFetchRequest *request = [[NSFetchRequest alloc]init];
    NSEntityDescription *categRequest = [NSEntityDescription entityForName:@"Notes" inManagedObjectContext:_managedObjectContext];
    request.predicate = [NSPredicate predicateWithFormat:@"text = %@", noteToEdit];
    [request setEntity:categRequest];

    //Error handling
    NSError *error = nil;
    NSMutableArray *mutableFetchResults = [[_managedObjectContext executeFetchRequest:request error:&error]mutableCopy];
    if (mutableFetchResults == nil) {
        NSLog(@"Error happened : %@", error);
    }

    Notes *editMe = [mutableFetchResults objectAtIndex:0];
    [editMe setCategory:editCategoryText];
    NSLog(@"Category from pickerview : %@", editCategoryText);
    if (![_managedObjectContext save:&error]) {
        NSLog(@"couldnt save : %@", error);
    }
}

这一行:

[editMe setCategory:editCategoryText];

正在崩溃。 editCategoryText是一个字符串,作为category属性。奇怪的是,我使用完全相同的代码来更改title属性,我没有任何问题。

日志文件:

2013-11-07 15:49:20.286 Simple Notes 1[16511:a0b] -[__NSCFString managedObjectContext]: unrecognized selector sent to instance 0x8dccc30
2013-11-07 15:49:20.293 Simple Notes 1[16511:a0b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString managedObjectContext]: unrecognized selector sent to instance 0x8dccc30'

您是否知道为什么此属性的行为与其他属性不同?谢谢。

2 个答案:

答案 0 :(得分:0)

不在电脑上,所以无法测试,但是:

摆脱mutableCopyexecuteFetchRequest返回自动释放的对象,然后你试图复制它,这会变成一个垃圾指针,它最终会指向一个字符串。

答案 1 :(得分:0)

实际上它似乎是一个核心数据错误,我通过在模拟器中删除我的应用程序,删除xcode中的核心数据模型,再次构建它并执行干净来解决它。