我找不到方法 [NSDictionary getObjects:andKeys:]
的工作示例。唯一example我能找到,不编译。我在这里提供了错误/警告,以防有人搜索它们。
我感到困惑的原因是因为 NSDictionary 上的大多数方法都返回一个 NSArray
。然而,在 documentation它声明此方法的输出变量作为 C 数组返回。
如果您遵循链接的示例,您可能会收到以下错误消息/警告:
NSDictionary *myDictionary = ...;
id objects[]; // Error: Array size missing in 'objects'
id keys[]; // Error: Array size missing in 'keys'
[myDictionary getObjects:&objects andKeys:&keys];
for (int i = 0; i < count; i++) {
id obj = objects[i];
id key = keys[i];
}
.
NSDictionary *myDictionary = ...;
NSInteger count = [myDictionary count];
id objects[count];
id keys[count];
[myDictionary getObjects:&objects andKeys:&keys]; // Warning: Passing argument 1 of 'getObjects:andKeys:' from incompatible pointer type.
for (int i = 0; i < count; i++) {
id obj = objects[i];
id key = keys[i];
}
我将提供一个可行的解决方案来回答这个问题。
最佳答案
下面是使用此方法的正确方法:
NSDictionary *myDictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"1", @"A", @"2", @"B", nil];
NSInteger count = [myDictionary count];
id objects[count];
id keys[count];
[myDictionary getObjects:objects andKeys:keys];
for (int i = 0; i < count; i++) {
id obj = objects[i];
id key = keys[i];
NSLog(@"%@ -> %@", obj, key);
}
关于c - [NSDictionary getObjects :andKeys:] 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2894093/