尝试访问iOS商店时出错

时间:2011-07-01 09:55:30

标签: 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];
}

我收到一个错误:

  

*由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'* - [NSURL initFileURLWithPath:]:nil string parameter'

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

提前致谢

1 个答案:

答案 0 :(得分:1)

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

尝试用

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