也许问题的标题不是很不言自明,但我不知道如何总结。
我正在完成一个基本上是数据库的应用程序。我将在应用程序中发送一个数据库。一切正常,但现在我遇到了问题。安装应用程序时,需要在设备上创建数据库。因此,我将 DB 拖到了我的 Xcode 项目中的“Supporting Files”文件夹中(顺便说一下,仍然是 Xcode 4.1)。我转到 AppDelegate.m 文件并查找 (NSPersistentStoreCoordinator *)persistentStoreCoordinator{} 方法。
我替换了这一行:
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"Database.sqlite"];
对于此代码:
NSString *storePath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"Database.sqlite"];
NSLog(@"%@", storePath);
NSURL *storeURL = [NSURL fileURLWithPath:storePath];
// Put down default db if it doesn't already exist
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath:storePath]) {
NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"Database" ofType:@"sqlite"];
if (defaultStorePath) {
[fileManager copyItemAtPath:defaultStorePath toPath:storePath error:NULL];
}
}
问题是编译器在线上给了我一个警告
NSString *storePath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent:@"Database.sqlite"];
这告诉我“NSURL 可能不会响应'stringByAppendingPathComponent',实际上,应用程序因此而崩溃。有趣的是,教程中的示例没有给出任何警告。
有人可以帮我解决我缺少的东西吗?
提前致谢!