Вопрос:
У меня есть 2 столбца типа VARCHAR (1000) и тип TEXT в SQLite db. Мое требование – хранить значения в массиве в db. Я попытался сохранить значения в массиве в строку, используя цикл for, но как только элемент управления выходит из цикла for, значения, отображаемые для строки, являются только последним элементом в массиве…
Есть ли способ, с помощью которого я могу напрямую хранить массив в DB??
Ниже мой код:
NSString *tempVal=0, *tempFlag=0; NSString *temp[256], *Flag[256]; for(int i=0; i<256; i++) { NSLog(@»HELLO %d», tempVal); temp[i] = (NSString*)valMines[i]; Flag[i] = (NSString*)openFlag[i]; NSLog(@»ValMines is %d», temp[i]); NSLog(@»OpenFlag is %d», Flag[i]); tempVal = temp[i]; tempFlag == Flag[i]; NSLog(@»ValMines is %d %d», temp[i], tempVal); } NSLog(@»Inside Save Data func»); NSLog(@»ValMines is %d», tempVal); NSLog(@»OpenFlag is %d», tempFlag);
Будет ли над ним работать? Как?
Ответ №1
В соответствии с этим другим сообщением SQLite не поддерживает массивы напрямую. Он только делает ints, text и floats.
Как сохранить массив в одном столбце в Sqlite3?
Ответ №2
Попробуйте следующее:
NSMutableString *tempVal = [NSMutableString stringWithCapacity:1000]; NSMutableString *tempFlag = [NSMutableString stringWithCapacity:256]; for (int i = 0; i < 256; i++) { NSLog(@»ValMines is %@», valMines[i]); NSLog(@»OpenFlag is %@», openFlag[i]); // adding a space between each string [tempVal appendFormat:@» %@», valMines[i]]; [tempFlag appendFormat:@» %@», openFlag[i]]; } NSLog(@»Inside Save Data func»); NSLog(@»ValMines is %@», tempVal); NSLog(@»OpenFlag is %@», tempFlag);