gpt4 book ai didi

macos - migratePersistentStore : to another URL on OS X 10. 9 Mavericks 后访问 NSManagedObject 属性时发生崩溃

转载 作者:行者123 更新时间:2023-12-03 17:21:58 24 4
gpt4 key购买 nike

在将持久存储迁移到另一个 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com