2011-12-20 51 views
-1

在iPhone上运行应用程序可以正常工作,但前提是它保持连接到Mac /链接到Xcode。 如果我在断开连接后尝试运行它(停止运行后),Core Data不再起作用。 Build也没有调试配置工程(产品 - >编辑方案... - >运行xy.app - >信息 - >生成配置)。 我xcdatamodel设置: 文件类型:默认核心数据模型 位置:相对于在没有连接到Xcode的情况下测试iPhone上的核心数据

任何想法集团?

干杯, Saeppi


对不起,不是更具体的了解我的问题。没有崩溃,我认为我对核心数据模型所做的更改没有发生。 阅读更多关于SQLite及其如何与Core Data一起工作的信息,我承认我犯了一个非常愚蠢的错误:我从教程中复制* .sqlite文件并将其导入到我的Xcode项目中,并将其复制到应用程序的文件夹中然后重命名它当然)。卸下sqlite的文件导致现在出现以下错误:

error: /Users/myName/Documents/myApp/myApp.sqlite: No such file or directory

我PersistentStoreCoordinator:

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator { 

if (persistentStoreCoordinator != nil) { 
    return persistentStoreCoordinator; 
} 

NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"MyApp.sqlite"]]; 

NSError *error = nil; 
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]]; 
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]) { 

    NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"ErrorKey", nil) 
                message:NSLocalizedString(@"ErrorDBKey", nil) 
                delegate:nil 
              cancelButtonTitle:@"OK" 
              otherButtonTitles:nil, nil]; 
    [alert show]; 
    [alert release]; 
}  
return persistentStoreCoordinator; 

}

和我的应用程序的目录:

- (NSString *)applicationDocumentsDirectory { 

    return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; 
} 

我认为核心数据会产生一旦从文件夹中删除了一个新的sqlite文件。推理中的错误是什么?

+0

你能解释一些更多的相同? – Sarah 2011-12-20 06:08:39

+2

*“不起作用”*是非常无益的描述。怎么了?它会崩溃吗?给你不期待的结果?无法完全运行? – Jim 2011-12-20 06:08:41

+1

如何确定它是核心数据是问题所在?你真的需要给我们更多的细节,否则我们无法帮助你。 – sosborn 2011-12-20 07:38:55

回答

0

它会在设备上崩溃吗? 您可以连接设备并检查设备日志中的崩溃报告。它会让您更好地了解正在发生的事情。其次尝试从后台退出应用并运行。

我会建议检查设备上的崩溃日志,如果它无法创建或找到核心数据,它会给出如下消息:存储丢失或类似的东西。

+0

没有崩溃,因此没有崩溃日志。 “从后台退出应用程序”是什么意思? – saeppi 2011-12-24 11:02:58

0

最有可能的是你在主包中打开你的数据库文件。主包是只读的。你的数据库文件需要在应用程序的文档文件夹中。

结算这个SO post

+0

不,根据沙箱,sqlite文件位于Documents文件夹中。任何其他想法? – saeppi 2011-12-24 11:00:47

相关问题