2014-09-07 4 views
0

У меня есть массив NSObjects. Каждый элемент имеет следующие свойства (имя, идентификатор, комментарий). Я использую сервер parse.com для отправки и получения данных приложения iOS. Мой код для сохранения данных является следующаяСохранить данные из NSArray в Parse

- (IBAction)order:(id)sender { 

    PFObject *obj = [PFObject objectWithClassName:@"Table_1"]; 

    for (SelectedIteam *iteam in _dataArray) { 
     [obj setObject:iteam.name forKey:@"Name"]; 
     [obj setObject:iteam.id forKey:@"ID"]; 
     [obj setObject:iteam.comment forKey:@"Comment"]; 
     [obj saveInBackground]; 
    } 

}

Но только последний элемент моего NSArray сохраняется в синтаксическое сервере. Как я могу сохранить все элементы из массива для анализа сервера.

ответ

0

Вместо этого я бы использовал метод сохранения PFObject saveAllInBackground. В противном случае вы делаете один вызов api для Parse для каждого объекта в массиве, когда вы можете достичь того же самого с помощью только одного вызова.

- (IBAction)order:(id)sender { 

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

    for (SelectedIteam *iteam in _dataArray) { 

      PFObject *obj = [[PFObject objectWithClassName:@"Table_1"]; 

      [obj setObject:iteam.name forKey:@"Name"]; 
      [obj setObject:iteam.id forKey:@"ID"]; 
      [obj setObject:iteam.comment forKey:@"Comment"]; 

      [items addObject: obj]; 
     } 

     [PFObject saveAllInBackground:items]; 
} 

https://parse.com/docs/ios/api/Classes/PFObject.html#//api/name/saveAllInBackground:

0

Чтобы добавить все элементы, PFObject должен быть определен в цикле for. Таким образом, правильный код будет равен

- (IBAction)order:(id)sender { 

for (SelectedIteam *iteam in _dataArray) { 
    PFObject *obj = [PFObject objectWithClassName:@"Table_1"]; 
    [obj setObject:iteam.name forKey:@"Name"]; 
    [obj setObject:iteam.id forKey:@"ID"]; 
    [obj setObject:iteam.comment forKey:@"Comment"]; 
    [obj saveInBackground]; 
    } 
} 
Смежные вопросы