【发布时间】:2014-10-25 09:48:02
【问题描述】:
我想用NSString 创建一个NSMutableDictionnary。
-(NSMutableDictionary *)getList{
//Declaration d'un objet SQLITE
sqlite3 *database;
//Declaration de notre String qui sera retourne
NSMutableDictionary *aromaArray = [[NSMutableDictionary alloc] init];
// Ouverture de la base de donnees
if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
//Chaine de caracteres de la requete
const char *sqlStatement = "SELECT name_fr FROM aroma_huiles";
//Creation de l'objet statement
sqlite3_stmt *compiledStatement;
//Compilation de la requete et verification du succes
if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
// Creation d'un dictionnaire des noms de colonnes
NSDictionary *dictionary = [self indexByColumnName:compiledStatement];
//char **final = malloc(4096 * sizeof(*final));
NSMutableArray *array = [[NSMutableArray alloc] init];
while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
//Assigne la valeur dans la chaine de caracteres
char *tab;
tab = (char*)sqlite3_column_text(compiledStatement, [[dictionary objectForKey:@"name_fr"] intValue]);
NSString *final = [NSString stringWithUTF8String:tab];
if (final != nil) {
NSString *firstLetter = [final substringToIndex:1];
[aromaArray setObject:final forKey:firstLetter];
}
}
}
else {
//Envois une exception en cas de probleme de requete
NSAssert1(0, @"Erreur :. '%s'", sqlite3_errmsg(database));
}
// Finalisation de la requete pour liberer la memoire
sqlite3_finalize(compiledStatement);
}
else {
//Envois une exception en cas de probleme d'ouverture
NSAssert(0, @"Erreur d'ouverture de la base de donnees");
}
//Fermer la base de donnees
sqlite3_close(database);
//Retourne la valeur
return aromaArray;
}
我认为这是最简单的方法,只有 2 行,但它仍然拒绝它:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString count]: unrecognized selector sent to instance 0x1093180c0'
【问题讨论】:
-
添加一个异常断点,Xcode会告诉你这个异常是在哪里产生的......
-
我知道这是一个循环问题,但我可以弄清楚如何以简单的方式构建字典 ..
-
您已经解决了循环问题。你现在得到一个完全不同的错误。您可以在这里找到解决方案:stackoverflow.com/questions/18888059/…
-
错误现在改变了..
标签: ios objective-c nsstring nsmutabledictionary