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

时间:2016-12-16 09:13:02

标签: ios objective-c arrays nsstring

我是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

提前致谢!

2 个答案:

答案 0 :(得分:1)

如果devices来自Core Data,则不能包含NSString。它是NSManagedObjectNSDictionary。我想这是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

答案 1 :(得分:0)

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

// 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
    }
}