如何在 NSString 中获取 NSArray 对象并一一发送该对象?
Posted
技术标签:
【中文标题】如何在 NSString 中获取 NSArray 对象并一一发送该对象?【英文标题】:How to get NSArray object in NSString and send that object one by one? 【发布时间】:2016-12-16 06:16:31 【问题描述】:我是 ios 的新手,我面临一个关于逐个发送数组对象的问题。我将数据保存在核心数据中,然后获取它,现在我想将它一个一个发送到 Web 服务。 听听是我从核心数据中获取对象并将其放入数组中的代码..
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);
听到的是Array8
的NSLog
:
Array8 =(
5,
5,
5,
5
)
在数组中是一个字符串值。
我想将数组的对象一一发送到网络服务。我做对了吗?当我将数组转换为字符串时,它会将数组的所有对象转换为字符串。
【问题讨论】:
你能记录下任何数组,以便我们了解你在那个数组中得到了什么吗?? @CodeChanger 请查看更新后的问题... @Muju 我不明白你的问题是什么。你在DevicesString
中转换了你的字符串(你不需要做stringWithFormat,你已经得到了一个NSString)那么你想用它做什么呢?
@LucasDerraugh 我很想将一些数组对象转换为int,将一些数组对象转换为long。我想一个一个发送。
好的,所以你需要像 5,5,5,5 这样的服务器发送数据对吗?
【参考方案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.
对单个数组中的所有对象使用上述代码。
注意:因为这不是最好的方式来调用服务这么多 时间虽然只有一个值你需要在服务器上发送所以 用逗号分隔一个字符串并通过单个调用发送。
【讨论】:
完美我得到了答案。 太棒了!快乐编码。 但是这个调用只在数组上。如何在这个循环中调用其他数组。 @Muju :如果您想为代码中提到的所有 9 个数组调用 Web 服务,您可以尝试将所有数组合并到一个中。 但这肯定不是一个好习惯。您应该传递逗号分隔的字符串并与后端开发人员进行通信。以上是关于如何在 NSString 中获取 NSArray 对象并一一发送该对象?的主要内容,如果未能解决你的问题,请参考以下文章
如何对 NSArray 进行排序并在 NSString 中访问?
将 NSNumber* 的 NSArray 存储为 Core Data 中的 NSString