Ce code fonctionne parfaitement dans l'iphone, simulateur d'ipad à la fois xcode 4.5
et xcode 4.6
. Également Déboguer parfaitement avec le dispositif dans xcode 4.5
. mais quand j'essaye de déboguer le périphérique dans xcode 4.6.2 alors cette erreur montre.Sqlite montre EXC_BAD_ACCESS dans ios SDK
C'est la requête
NSString *insertQuery=[NSString stringWithFormat:@"Insert into %@ (ID,Question,Answer,Option1,Option2,Option3,Explanation,ImageName,Used) values(%d,'%@','%@','%@','%@','%@','%@','%@','%@')",table,[[d objectForKey:@"ID"]intValue],[d objectForKey:@"Question"],[d objectForKey:@"Answer"],[d objectForKey:@"Option1"],[d objectForKey:@"Option2"],[d objectForKey:@"Option3"],[d objectForKey:@"Explanation"],[d objectForKey:@"ImageName"],@"N"];
NSLog(@"insert query-%@",insertQuery);
[database executeNonQuery:insertQuery];
est ici le code qui montre l'erreur EXC_BAD_ACCESS
- (BOOL)executeNonQuery:(NSString *)sql, ...
{
va_list args;
va_start(args, sql);
NSMutableArray *argsArray = [[NSMutableArray alloc] init];
NSUInteger i;
for (i = 0; i < [sql length]; ++i)
{
if ([sql characterAtIndex:i] == '?')
[argsArray addObject:va_arg(args, id)]; //This line shows error.
}
va_end(args);
BOOL success = [self executeNonQuery:sql arguments:argsArray];
[argsArray release];
return success;
}
merci pour la réponse..mais je suis encore confus s'il vous plaît donnez-moi un exemple comment puis-je passer la requête directement à [database executenonquery: ...] –
[database executeNonQuery: @ "INSERT INTO? VALUES (?,?,? ,?,?,?,?,?,?); ", table, [[d objectForKey: @" ID "] intValeur], [d objectForKey: @" Question "], [d objectForKey: @" Réponse "] , [d objectForKey: @ "Option1"], [d objectForKey: @ "Option2"], [d objectForKey: @ "Option3"], [d objectForKey: @ "Explication"], [d objectForKey: @ "ImageName"] , @ "N"]; // J'ai essayé ce suis-je raison ..? –
Cela semble être la façon dont l'API est conçue, oui. – bbum