Моя программа должна работать с базой данных, и теперь я использовал инфраструктуру 'FMDB' и закрыл песочницу в своем проекте xcode.
, но у меня возникла проблема, это очень странно: на моем компьютере чтение / запись работать не проблема. (после архивирования как приложение), но на другом компьютере он может только читать, не может писать, почему? (База данных находится в исходной папке этого приложения.)
Проблема не в том, что файл базы данных не может быть найден, потому что я регистрирую путь базы данных на другом компьютере, это правильно.
Моя система это "Ma c OS 10.15", я использую SDK этой версии '10 .13 'в Xcode.
Операция чтения: ↓
+ (charData *)getCharacteData:(NSString *)character
{
NSString *databasePath = [[NSBundle mainBundle] pathForResource:@"CN_Characters" ofType:@"DB"];
FMDatabase *db = [FMDatabase databaseWithPath:databasePath];
[db open];
FMResultSet *res = [db executeQuery:[NSString stringWithFormat:@"SELECT * FROM Proverbs WHERE character = '%@';",character]];
charData *charDta = [charData new];
if ([res next]) {
charDta.character = [NSString stringWithString:[res stringForColumn:@"character"]];
charDta.explanation = [NSString stringWithFormat:@"%@",[res stringForColumn:@"explanation"]];
} else {
return NULL;
}
[db close];
return charDta;
}
Операция записи: ↓
+ (BOOL)saveCharacterDataWithCharacter:(NSString *)character Explanation:(NSString *)explanation
{
NSString *databasePath = [[NSBundle mainBundle] pathForResource:@"CN_Characters" ofType:@"DB"];
printf("databasePath: %s\n",databasePath.UTF8String);
FMDatabase *db = [FMDatabase databaseWithPath:databasePath];
[db open];
BOOL res = [db executeUpdate:[NSString stringWithFormat:@"UPDATE Proverbs SET explanation = '%@' WHERE character = '%@'",explanation,character]];
[db close];
return res;
}
Это проблема с разрешением?