小编use*_*663的帖子

NSStoreModelVersionHashes核心数据迁移中的错误

我目前在Core-Data轻量级迁移方面遇到问题。深入研究之后,我发现模型中的一个实体上的NSStoreModelVersionHashes存在问题。实际上,甚至在我将模型版本添加到我的Core-Data模型之前,都发生了这种情况,并通过重新创建模型进行了验证。

我使用以下两种方法以编程方式获取了模型的版本哈希值:

    NSDictionary * sourceMetadata = [NSPersistentStoreCoordinator metadataForPersistentStoreOfType:NSSQLiteStoreType URL:[NSURL fileURLWithPath:storePath] error:&error];
    NSDictionary * hashesFromMetadata = [sourceMetadata objectForKey:@“ NSStoreModelVersionHashes”]; 

和

    NSMutableArray * filePaths = [[[NSMutableArray alloc] init];
    NSString * directoryPath = [bundle pathForResource:modelName ofType:@“ momd”];        
    NSDirectoryEnumerator * enumerator = [[NSFileManager defaultManager] enumeratorAtPath:directoryPath];

    NSString * filePath;
    while(((filePath = [enumerator nextObject])!= nil){
        if([[[filePath pathExtension] isEqualToString:@“ mom”]){
            [filePaths addObject:[directoryPath stringByAppendingPathComponent:filePath]];    
        } 
    }
    / * Model.momd目录仅包含一个“ mom”文件:Model.mom” * /
    NSURL * momURL = [NSURL fileURLWithPath:[filePaths objectAtIndex:0]];
    NSManagedObjectModel *模型= [[NSManagedObjectModel分配] initWithContentsOfURL:momURL];
    NSDictionary * hashesFromModel = [模型EntityVersionHashesByName]; …

iphone core-data objective-c ios

5
推荐指数
0
解决办法
422
查看次数

标签 统计

core-data ×1

ios ×1

iphone ×1

objective-c ×1