- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在将持久存储迁移到另一个 URL 之前,我有一个在 OS X 10.9 上运行良好的代码。当我尝试执行获取请求并按所获取项目的现有属性进行排序时,迁移应用程序崩溃。在 OS X 10.8 上,迁移前后都运行良好。非常感谢任何帮助。
这是商店迁移,没什么特别的:
BOOL success = [storeCoordinator migratePersistentStore:store toURL:[NSURL fileURLWithPath:newPath] options:nil withType:NSSQLiteStoreType error:&error];
迁移成功进行,没有错误。这是崩溃的代码(在迁移之前运行良好):
NSManagedObjectContext *moc = [appDelegate managedObjectContext];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Item" inManagedObjectContext:moc];
[request setEntity:entity];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K == nil", @"parent"];
[request setPredicate:predicate];
// SORTING BY "sortOrder" PROPERTY CRASHES THE APP
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"sortOrder" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
NSError *error;
NSMutableArray *fetchResults = [moc executeFetchRequest:request error:&error];
崩溃详细信息:
Thread 1: EXC_BAD_ACCESS (code=1, address=0x60)
0x00007fff89a64ad0 in _propertyAtIndexForEntityDescription ()
0x00007fff89a631dd in snapshot_get_value_as_object ()
0x00007fff931ea49f in -[NSObject(NSKeyValueCoding) valueForKeyPath:] ()
0x00007fff931e904c in _sortedObjectsUsingDescriptors ()
0x00007fff931e8e69 in -[NSArray(NSKeyValueSorting) sortedArrayUsingDescriptors:] ()
0x00007fff89a459f0 in -[NSManagedObjectContext executeFetchRequest:error:] ()
更新[2]感谢 Tom Harrington 的问题,我能够将问题范围缩小到:
更新[3]看来有许多特定的按键导致了这次崩溃。在所获取项目的十几个不同属性中,访问 NSDate 和 'double' 类型的 3 个特定属性会导致应用程序崩溃。它们都具有一定的有意义的值(value)。
还有其他类型的属性:NSString、Boolean、Integer 16、Integer 32 和二进制数据。其中一些为零,一些设置为默认值,一些具有其他值。可以毫无错误地访问它们。 并且有一个NSDate属性,没有任何值(包括默认值),并且访问它也不会出现问题。
为什么会崩溃?在将商店迁移到另一个 URL 之前,我可以成功访问这些属性。
最佳答案
似乎是不久前创建的特定项目的问题。也许在这些年里,项目文件和设置中出现了一些困惑。
关于macos - migratePersistentStore : to another URL on OS X 10. 9 Mavericks 后访问 NSManagedObject 属性时发生崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21890088/
我有一个调用 migratePersistentStore 的代码部分,我想阻止任何 temporaryContext 同时做任何事情,如何? 我的想法是基于一个信号量和一个dispatch_grou
我真的很纠结这个。我正在尝试创建事件核心数据库的备份。根据 Apple 的说法,最好的选择不是使用文件管理器,而是使用 migratePersistentStore 方法。但是我真的不明白这一点。我的
在将持久存储迁移到另一个 URL 之前,我有一个在 OS X 10.9 上运行良好的代码。当我尝试执行获取请求并按所获取项目的现有属性进行排序时,迁移应用程序崩溃。在 OS X 10.8 上,迁移前后
我是一名优秀的程序员,十分优秀!