Я только начал разработку 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
метода, приведенного выше.
Спасибо