вам нужно начать добавлять свой db в свой проект-xcode, поэтому он будет добавлен в папку вашего пакета, где вы можете найти его с помощью кода:
[NSBundle mainBundle]
Это единственная папка, в которую вы можете добавлять файлы через xcode, когда вы «создаете» свое приложение (в конечном итоге с вложенными папками, но не с «системными» папками в качестве «документов»), теперь вам просто нужно иметь в виду, что основная папка пакета - это просто " только для чтения ", поэтому вы не можете использовать там свою базу данных с правами записи. Итак, нормальный способ:
1) когда вы хотите использовать свою базу данных, проверьте с помощью кода, существует ли она в папке app: documents. Конечно, в первый раз это не так, поэтому
2) скопируйте его из основного пакета
- (BOOL)transferDb {
NSError **error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"yourData.db"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath: path])
{
NSString *bundle = [[ NSBundle mainBundle] pathForResource:@"preferenze" ofType:@"plist"];
[fileManager copyItemAtPath:bundle toPath:path error:error];
return YES;
}
return NO;
}
3) используйте его (ж / б) в папке с документами
ps: и (конечно) имейте в виду, что когда вы используете / редактируете / записываете db в iPhone / симуляторе, возможно, добавляете записи, тот, который в основном пакете, и, конечно, тот, который в вашем Mac / проекте, не будет обновлен , никакие записи не будут добавлены к нему, поэтому, если по какой-либо причине вы удалите свое приложение на iPhone / симуляторе (или «очистите все цели» с помощью меню «build» xCode), метод проверки / копирования скопирует «девственную» базу данных в папку с документами снова, поэтому вы потеряете все свои изменения ...
person
meronix
schedule
17.02.2011