如何使用 for 循环在 NSString 中获取多个 NSArray 对象并一一发送该对象?

Posted

技术标签:

【中文标题】如何使用 for 循环在 NSString 中获取多个 NSArray 对象并一一发送该对象?【英文标题】:How to get more than one NSArray object in NSString using for loop and send that object one by one? 【发布时间】:2016-12-16 09:13:01 【问题描述】:

我是 ios 新手,我面临着在这个循环中获取更多一个数组的问题

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

此循环仅将一个数组转换为字符串,我无法访问此循环之外的字符串。 我有 9 个数组

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"];

我需要使用这个循环将所有数组转换成 9 个不同的字符串,这可能吗?如何在 9 个不同的字符串中转换 9 个不同的数组。

注意 - 设备是来自核心数据的NSMutableArray,它的类型是NSString

提前致谢!

【问题讨论】:

devices 是什么类型,什么类型包含它? @vadian 是 NSMutableArray。它的数据来自核心数据。 请添加一个具体示例其中一行返回什么以及预期结果是什么。 @vadian 我想以字符串格式一个一个发送数组元素。 为什么不试试嵌套循环呢?似乎没有那么难。尝试一次,然后寻求帮助。 【参考方案1】:

如果devices 来自Core Data,它不能包含NSString。要么是NSManagedObject,要么是NSDictionary。我猜是NSManagedObject

在这种情况下更适合使用NSManagedObject作为循环中的对象并分别获取九个键的值:

for (NSManagedObject *object in devices) 

    NSSString *string1 = [object valueForKey:@"key1"];
    NSSString *string2 = [object valueForKey:@"key2"];
    NSSString *string3 = [object valueForKey:@"key3"];
    NSSString *string4 = [object valueForKey:@"key4"];
    NSSString *string5 = [object valueForKey:@"key5"];
    NSSString *string6 = [object valueForKey:@"key6"];
    NSSString *string7 = [object valueForKey:@"key7"];
    NSSString *string8 = [object valueForKey:@"key8"];
    NSSString *string9 = [object valueForKey:@"key9"];
    // use the strings

另一种方法是使用 Core Data 中的 NSDictionary 数组,而不是 NSManagedObject

【讨论】:

【参考方案2】:

我猜你需要这个(至少从你的问题来看)-

// Preparation
NSArray *array1 = @[@"one", @"two"];
NSArray *array2 = @[@"three", @"four"];
NSArray *devices = @[array1,array2];

// Real work
for (NSArray *array in devices) 
    for (NSString *strDevice in array) 
        NSLog(@"Print Your Data = %@",strDevice);
        //Send to ur server or do anything you want
    

【讨论】:

告诉我你是否只想要这种方式。如果您更详细地解释您的问题,那么我们可以为您提供更多帮助。

以上是关于如何使用 for 循环在 NSString 中获取多个 NSArray 对象并一一发送该对象?的主要内容,如果未能解决你的问题,请参考以下文章

如何删除在 for 循环中创建的注释

迭代for循环时变慢

如何在 for 循环中使用动态键值从 JSON 数组获取值?科特林

在 SwiftUI 中使用 For 循环获取 Firebase 数据

如何获取在 for 循环中创建的变量名

如何从 django 模板中的 for 循环中获取特定的 id?