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

发布于 2024-10-20 10:31:31 字数 631 浏览 4 评论 0原文

我有这样的代码:

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。什么会导致这种情况?

I have this code:

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];

To my surprise, it's sometimes returning NO and leaving/setting the error pointer to nil. What can cause this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半透明的墙 2024-10-27 10:31:31

如果您的自定义迁移策略在未设置 error 指针的情况下返回 NO,则会导致这种情况。例如,

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

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

This is caused if you have a custom migration policy that returns NO without setting the error pointer. e.g.

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

Check the code carefully to find any situations where this could occur.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文