iPhone-SQLite插入语句不';在调试配置中工作时,不能在版本配置中工作
我正在开发一个类似于quick的游戏项目,它使用sqlite数据库存储数据。一切正常,即在“调试”配置中读取和写入数据库,游戏按预期工作 然而,当我在发布配置中构建相同的游戏时。sqlite“insert”和“update”语句不能正常工作。由于sqlite db读/写,程序在播放几次后崩溃 我在互联网上搜索答案,发现很少有建议说这是发布配置中的优化问题 下面是我在sqlite db中插入新播放器的代码iPhone-SQLite插入语句不';在调试配置中工作时,不能在版本配置中工作,iphone,ios,sqlite,config,xcode4.6,Iphone,Ios,Sqlite,Config,Xcode4.6,我正在开发一个类似于quick的游戏项目,它使用sqlite数据库存储数据。一切正常,即在“调试”配置中读取和写入数据库,游戏按预期工作 然而,当我在发布配置中构建相同的游戏时。sqlite“insert”和“update”语句不能正常工作。由于sqlite db读/写,程序在播放几次后崩溃 我在互联网上搜索答案,发现很少有建议说这是发布配置中的优化问题 下面是我在sqlite db中插入新播放器的代码 - (void) insertPlayerWithName:(NSString *) pla
- (void) insertPlayerWithName:(NSString *) playerName {
@try
{
[self openDatabase];
Player *p = [[Player alloc] init];
p.name = playerName;
p.energyRefillDate = [self getStringDateFromNSDate:[NSDate dateWithTimeIntervalSinceNow:100000]];
NSLog(@"Date : %@", p.energyRefillDate);
NSString *insertSQL = [NSString stringWithFormat:@"INSERT INTO Player VALUES ('%@', %d, %d, %d, %d, %d, %d, %d, %d, %d, '%@', %d)", p.name, p.knop, p.gold, p.energy, p.karma, p.level, p.keyOfEnergy, p.keyOfWisdom, p.keyOfStrength, p.premium, p.energyRefillDate, p.numQuestsCompleted];
char *error;
if ( sqlite3_exec(_sqliteDBConnection, [insertSQL UTF8String], NULL, NULL, &error) != SQLITE_OK )
{
NSLog(@"Error While Inserting Player : %@", [NSString stringWithUTF8String:error] );
}
else
{
[[NSUserDefaults standardUserDefaults] setObject:playerName forKey:@"CurrentPlayer"];
[[NSUserDefaults standardUserDefaults] synchronize];
sqlite3_close(_sqliteDBConnection);
}
[p release];
}
@catch (NSException *exception)
{
NSLog(@"An exception while Error While Inserting Player in Sqlite :%@", exception);
}
@finally
{
sqlite3_close(_sqliteDBConnection);
}
}
非常感谢您提供的任何帮助、建议和提示。提前感谢您抽出时间阅读问题 我发现了这个问题。问题在于发行版配置中的C预处理器标志NS_BLOCK_ASSERTIONS=1 当我删除此断言时,应用程序按预期工作。我希望它能帮助那些可能面临这个问题的人