Я только начал с разработки iPhone. В одном из примеров, где мне пришлось отображать некоторые данные, хранящиеся в sqlite db в представлении таблицы в контроллере панели, мне пришлось переместить sqlite файл из пакета приложений в папку документов.
Я использовал шаблон приложения - iOS > Приложение > Окно-приложение для iPhone (Используемые основные данные для хранения)
В шаблоне, сгенерированном XCode (базовый sdk установлен на последнюю версию iOS = 4.2), появился следующий код...
- (NSURL *)applicationDocumentsDirectory {
return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
}
При попытке получить путь к папке документов я использовал метод, приведенный выше, как это...
NSString *documentDirectory = [self applicationDocumentsDirectory];
Это дало предупреждение - warning: incompatible Objective-C types initializing 'struct NSURL *', expected 'struct NSString *'
Итак, я изменил код на следующий...
// Added the message absoluteString over here
NSString *documentDirectory = [[self applicationDocumentsDirectory] absoluteString];
NSString *writableDBPath = [documentDirectory stringByAppendingPathComponent:@"mydb.sqlite"];
NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"mydb.sqlite"];
BOOL success = [fileManager copyItemAtPath:defaultDBPath toPath:writableDBPath error:&error];
if (!success) {
NSLog(@"Failed to create writable database file with message '%@'.", [error localizedDescription]);
}
И БУМ!!! Это дало ошибку, что - 'Failed to create writable database file with message 'The operation couldn’t be completed. No such file or directory'.'
Как найти каталог путей к документам, поскольку метод applicationDocumentsDirectory
, сгенерированный шаблоном XCode, не работает для меня.
Кроме того, кто-то может пролить свет на цель метода applicationDocumentsDirectory
, приведенного выше.
Спасибо