2011-11-25 7 views
1
NSString *aName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)]; 
NSString *aDescription = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)]; 
NSString *aImageUrl = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 3)]; 
NSString *aCount = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 4)]; 
Animal *animal = [[Animal alloc] initWithName:aName description:aDescription url:aImageUrl countc:aCount ]; 

Programme reçu le signal "SIGABRT" à la ligne "* aCount" est défini, Comment puis-je déboguer ce type d'erreur?Programme de débogage reçu le signal "SIGABRT"

+0

countc: aCount ou compte: aCount? Si le paramètre count est un nombre entier, tyen, utilisez [aCount intValue]. – Ravin

Répondre

1

Il semble que la colonne de base de données a une valeur de zéro. vous devez d'abord vérifier null avant d'utiliser lorsque vous traitez avec sqlite.

quelque chose comme ça -

if ((char *)sqlite3_column_text(compiledStatement, 4)) 
{ 
    NSString *aCount = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 4)]; 

} 
0

imprimer les nsstrings et également vérifier la fonction de initwithname

1

Il y a quelques possibilités de cette exception, consultez la suite ...

  1. La colonne peut être dans la base de données représente ENTIER et dans le code, il est en cours traité comme VARCHAR.
  2. La colonne peut avoir la valeur NULL et est essayée de convertir en NSString.
+0

La colonne est VARCHAR et n'est pas NULL – susitha

Questions connexes