I couldn't find a working example of the method [NSDictionary getObjects:andKeys:]
. The only example I could find, doesn't compile. I provided the errors/warnings here in case someone is searching for them.
The reason I was confused is because most methods on NSDictionary return an NSArray
. However, in the documentation it states that the out variables of this method are returned as C arrays.
Here are the error messages/warnings you might get if you follow the linked example:
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];
}
I'll provide a working solution as an answer to this question.