什么可能导致NSMigrationManager返回nil错误?

时间:2011-03-04 11:32:13

标签: cocoa core-data foundation

我有这段代码:

NSError *error; // NSMigrationManager hates it if you don't provide an error pointer
BOOL result = [manager migrateStoreFromURL:sStoreURL
                                      type:NSSQLiteStoreType
                                   options:nil
                          withMappingModel:mappingModel
                          toDestinationURL:dStoreURL
                           destinationType:NSBinaryStoreType
                        destinationOptions:nil
                                     error:&error];

令我惊讶的是,它有时返回NO并将error指针保留为nil。是什么导致这种情况?

1 个答案:

答案 0 :(得分:2)

如果您的自定义迁移策略在未设置NO指针的情况下返回error,则会导致此问题。 e.g。

- (BOOL)createDestinationInstancesForSourceInstance:(NSManagedObject *)sInstance entityMapping:(NSEntityMapping *)mapping manager:(SVMigrationManager *)manager error:(NSError **)error;
{
    return NO;
}

仔细检查代码,找出可能发生这种情况的任何情况。