objective-c - 尝试访问 iOS 商店时出错

标签 objective-c ios core-data

全部,

我的项目中有以下代码:

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
    if (__persistentStoreCoordinator != nil)
    {
        return __persistentStoreCoordinator;
    }
    NSError *error = nil;


    NSString *storePath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent:@"My_Model.sqlite"];

    NSURL *storeURL = [NSURL fileURLWithPath:storePath];


    __persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
    if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error])
    {
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }

    return __persistentStoreCoordinator;
}

- (NSString *)applicationDocumentsDirectory
{
    NSError *err = nil;
    return [NSString stringWithContentsOfURL:[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject] encoding:NSUTF8StringEncoding error:&err];
}

我收到一个错误:

* Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* -[NSURL initFileURLWithPath:]: nil string parameter'

我不明白的是为什么这会返回 s nil?我引用了一本关于这段代码的书,似乎认为它应该可以正常工作。有什么想法吗?

提前致谢

保罗

最佳答案

你的-applicationDocumentsDirectory方法对我来说看起来很奇怪。您不返回文档目录的路径,而是尝试实际返回该目录的内容(这可能无法读取,因此它将返回 nil)。

尝试将方法替换为

- (NSURL *)applicationDocumentsDirectory
{
    return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory
                                                   inDomains:NSUserDomainMask] lastObject];
}

关于objective-c - 尝试访问 iOS 商店时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6546410/

相关文章:

objective-c - 使用从 textFields 创建的对象填充 NSTableView

ios - 将 Facebook 好友姓名传递到文本字段时出现问题

objective-c - 如何使用 NSPredicate 中的 "ALL"聚合操作来过滤基于 CoreData 的集合

ios - iOS 中 Cross Sign 的附件类型

ios - 有没有办法让 YTPlayerView 在 iPad 上全屏播放?

javascript 文件输入 onchange 不起作用 [仅限 ios safari]

ios - UITableView 仅显示提要中的 1 个单元格。休息套件

swift - 使用通用函数从云记录(或其他外部源)填充对象

ios - 在 NSManagedObject 上调用 MR_createEntity 时出错

ios - SpriteKit 在碰撞时随机卡住