2016-12-16 10 views
0

Я новичок в iOS, и я столкнулся с проблемой отправки объекта массива один за другим. Я сохраняю данные в основных данных, затем я извлекаю их, и теперь я хочу отправить их один за другим в веб-службу. Услышь мой код для извлечения объекта из основных данных и получить его в массиве ..Как получить объект NSArray в NSString и отправить этот объект по одному?

NSManagedObject *device2 = [devices objectAtIndex:indexPath.row]; 

NSLog(@"Devices =%@",devices); 
[cell.lbl1 setText:[NSString stringWithFormat:@"%@", [device2 valueForKey:@"key1"]]]; 
[cell.lbl2 setText:[NSString stringWithFormat:@"%@",[device2 valueForKey:@"key2"]]]; 
[cell.lbl3 setText:[NSString stringWithFormat:@"%@",[device2 valueForKey:@"key3"]]]; 
[cell.lbl4 setText:[NSString stringWithFormat:@"%@",[device2 valueForKey:@"key4"]]]; 
[cell.lbl5 setText:[NSString stringWithFormat:@"%@",[device2 valueForKey:@"key5"]]]; 
[cell.lbl6 setText:[NSString stringWithFormat:@"%@",[device2 valueForKey:@"key6"]]]; 
[cell.lbl7 setText:[NSString stringWithFormat:@"%@",[device2 valueForKey:@"key7"]]]; 
[cell.lbl8 setText:[NSString stringWithFormat:@"%@",[device2 valueForKey:@"key8"]]]; 
[cell.lbl9 setText:[NSString stringWithFormat:@"%@",[device2 valueForKey:@"key9"]]]; 

Array1=[devices valueForKey:@"key1"]; 
Array2 =[devices valueForKey:@"key2"]; 
Array3 =[devices valueForKey:@"key3"]; 
Array4=[devices valueForKey:@"key4"]; 
Array5=[devices valueForKey:@"key5"]; 
Array6=[devices valueForKey:@"key6"]; 
Array7=[devices valueForKey:@"key7"]; 
Array8=[devices valueForKey:@"key8"]; 
Array9=[devices valueForKey:@"key9"]; 


NSLog(@" Array =%@",Array1); 
NSLog(@" Array =%@",Array2); 
NSLog(@" Array =%@",Array3); 
NSLog(@"Array =%@",Array4); 
NSLog(@" Array =%@",Array5); 
NSLog(@"Array =%@",Array6); 
NSLog(@"Array =%@",Array7); 
NSLog(@"Array =%@",Array8); 

Это, как преобразовать массив в строку:

DevicesString = [NSString stringWithFormat:@"%@",[Array componentsJoinedByString:@""]]; 
NSLog(@"Device String is =%@",DevicesString); 

Hear является NSLog из Array8:

Array8 =(
    5, 
    5, 
    5, 
    5 
) 

В массиве это строковое значение.

Я хочу отправить объект массива один за другим в веб-службу. Неужели я прав? Когда я преобразовываю массив в строку, он преобразует весь объект массива в строку.

+0

Можете ли вы зарегистрировать любой массив, чтобы мы могли понять, что вы получаете в этом массиве? – CodeChanger

+0

@CodeChanger См. Обновленный вопрос ... – Muju

+0

@Muju Я не понимаю, в чем проблема. Вы преобразовали строку в 'DevicesString' (вам не нужно делать stringWithFormat, вы уже возвращаете NSString), то что вы хотите с ней сделать? –

ответ

1

Таким образом, исходя из вашего комментария, вы можете отправить свои данные на сервер, как показано ниже.

NSArray *arrayData = //fill your data. 

for (NSString *strDevice in arrayData) { 
    NSLog(@"Print Your Data = %@",strDevice); 
    //Send this strDevice to server in loop one by one. 
} 

Надеюсь, это поможет вам отправить свои данные для обслуживания по одному.

объединить весь массив в одном использовании массива ниже кода:

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

[newArray addObjectsFromArray: Array1]; 

[newArray addObjectsFromArray: Array2]; 

and so on. 

Выше логика также может работать, но есть еще один способ, чтобы получить все объекты в одном массиве и использовать тот же цикл, и передавать данные на сервер.

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

//Add Your all devices array data directly in one array like below 

[allObjectsArray addObjectsFromArray:[devices valueForKey:@"key1"]]; 
[allObjectsArray addObjectsFromArray:[devices valueForKey:@"key2"]]; 
[allObjectsArray addObjectsFromArray:[devices valueForKey:@"key3"]]; 
[allObjectsArray addObjectsFromArray:[devices valueForKey:@"key4"]]; 
[allObjectsArray addObjectsFromArray:[devices valueForKey:@"key5"]]; 
[allObjectsArray addObjectsFromArray:[devices valueForKey:@"key6"]]; 
[allObjectsArray addObjectsFromArray:[devices valueForKey:@"key7"]]; 
[allObjectsArray addObjectsFromArray:[devices valueForKey:@"key8"]]; 
[allObjectsArray addObjectsFromArray:[devices valueForKey:@"key9"]]; 


for (NSString *strDevice in allObjectsArray) { 
    NSLog(@"Print Your Data = %@",strDevice); 
    //Send this strDevice to server in loop one by one. 
} 

Использовать выше код для всех объектов в одном массиве.

Примечание: Поскольку это не является предпочтительным способом вызова службы для этих много времени, хотя есть только одно значение, вам нужно отправить на сервер, чтобы сделать одну строку с запятыми и отправить его с одного вызова.

+0

Совершенно я получил свой ответ. – Muju

+1

Отлично! Счастливое кодирование. – CodeChanger

+0

Но этот вызов только по массиву. Как я могу вызвать другой массив в этом цикле. – Muju