Вставить массив в базу данных SQLite? - PullRequest
0 голосов
/ 19 февраля 2011

Хорошо,

Я новичок и хочу получить массив с моего сервера и вставить его в таблицу базы данных SQLite.Мой код ниже.Пожалуйста, помогите!

- (void)getAlbums {

// Get Albums
NSString *userId;
userId = @"1";
NSString *post =[NSString stringWithFormat:@"userid=%@", userId];
NSString *hostStr = @"********************************************?";
hostStr = [hostStr stringByAppendingString:post];
NSData *dataURL =  [NSData dataWithContentsOfURL: [ NSURL URLWithString: hostStr ]];    
NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding];

    //Create Array
NSArray *myWords = [serverOutput componentsSeparatedByString:@" "];

// Output server response
NSLog(serverOutput);

//Initialize the array.
NSMutableArray *listOfItems = [[NSMutableArray alloc] init];
listOfItems = [[NSArray arrayWithObjects: myWords, nil] retain];

NSString *test;
while (*test in listOfItems) {
    [sqlite executeNonQuery:@"INSERT INTO photo_albums VALUES (?, ?);", variableOne, variableTwo];
}

    }

1 Ответ

0 голосов
/ 20 февраля 2011

в этом коде более одной проблемы.

NSMutableArray *listOfItems = [[NSMutableArray alloc] init]; 

это будет утечка в следующей строке, потому что вы переназначаете другой элемент переменной. Измените это на: NSArray *listOfItems;

listOfItems = [[NSArray arrayWithObjects: myWords, nil] retain];

это не то, что вы думаете. Он инициализирует массив с массивом myWords в качестве «члена», он не будет добавлять объекты из myWords.
Но почему эта линия существует в любом случае? myWords это уже массив. И удержание, которое не освобождается, было бы еще одной утечкой.

NSString *test;

while (*test in listOfItems) { 

это просто неправильно. Применение:

for (test in listOfItems) {
    [sqlite executeNonQuery:@"INSERT INTO photo_albums VALUES (?, ?);", variableOne, variableTwo];

откуда вы берете variableOne и variableTwo? И почему вы перебираете свои listOfItems, если вы не используете строку NSSt с именем test?

}

нет проблем с закрывающей скобкой.

Да, и serverOutput тоже не выпускается, поэтому есть еще одна утечка. И я почти уверен, что кодировка не ascii.

Начните с iOS 101, изучите основы и игнорируйте sqlite в течение следующих 2 недель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...