我有一系列名为"客户"的PFObjects。它有15个值/键对。我想在运行时使用这些键/对值。如何迭代每对并将值赋给NSString?
下面我有一个可行的代码片段,但我必须在设计时输入密钥,这意味着如果我更改了任何内容,我必须更新代码。我不想要那个。我需要在运行时循环每个键/值对。
for (PFObject customer in customers) {
NSString *str = [customer valueForKey:@"key"];
}
由于
答案 0 :(得分:1)
我相信你有一个字典数组,这意味着你需要另外循环字典中的键,然后访问它们的值。 像这样:
NSArray *array = @[@{@"Key1" : @"Value1"}, @{@"Key2" : @"Value2"}, @{@"Key3" : @"Value3"}];
for (NSDictionary *dict in array) {
NSLog(@"%@", dict.allKeys);
for (NSString *key in dict.keyEnumerator) {
NSLog(@"Key: %@, Value %@", key, dict[key]);
}
}
这里,array是一个字典集合,这意味着当你循环它或者像array[0]
那样访问它时,你将检索一个字典。您必须进一步访问字典的键,然后分别访问它们的值,例如:
NSDictionary *dict;
NSString *key = // get the key from somewhere, maybe a loop
NSString *value = dict[key];
最后,通过执行以下操作,可以循环遍历字典的值:
NSDictionary *dict;
for (NSArray *values in dict.allValues) {
NSLog(@"Values: %@", values);
}
完整:
NSArray *array = @[@{@"Key1" : @"Value1"}, @{@"Key2" : @"Value2"}, @{@"Key3" : @"Value3"}];
for (NSDictionary *dict in array) {
NSLog(@"%@", dict.allKeys);
for (NSString *key in dict.keyEnumerator) {
NSLog(@"Key: %@, Value %@", key, dict[key]);
}
}
for (NSDictionary *dict in array) {
for (NSArray *values in dict.allValues) {
NSLog(@"Values: %@", values);
}
}
答案 1 :(得分:0)
您有一个代表客户的PFObjects
数组,并且您希望有一个表示其名称的字符串数组。您需要知道包含名称的客户对象上的属性名称,我们称之为“名称”,作为猜测。 (OP将其作为@“密钥”,但我认为这是混淆的结果)。
// replace @"name" with the name of the string attribute representing
// the customer's name (find it in your data browser)
NSMutableArray *customerNames = [@[] mutableCopy];
for (PFObject *customer in customers) {
[customerNames addObject:[customer valueForKey:@"name"]];
}
NSLog(@"The names are %@", customerNames);