У меня есть 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);
Будет ли над ним работать? Как?
В соответствии с этим другим сообщением SQLite не поддерживает массивы напрямую. Он только делает ints, text и floats.
Попробуйте следующее:
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);