【问题标题】:How to get more than one NSArray object in NSString using for loop and send that object one by one?如何使用 for 循环在 NSString 中获取多个 NSArray 对象并一一发送该对象?
【发布时间】: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 我想以字符串格式一个一个发送数组元素。
  • 为什么不试试嵌套循环呢?似乎没有那么难。尝试一次,然后寻求帮助。

标签: ios objective-c arrays nsstring


【解决方案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
        }
    }
    

    【讨论】:

    • 告诉我你是否只想要这种方式。如果您更详细地解释您的问题,那么我们可以为您提供更多帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    相关资源
    最近更新 更多