dictionaryWithObjects:forKeys:count:
Creates a dictionary containing a specified number of objects from a C array.
Declaration
+ (instancetype) dictionaryWithObjects:(ObjectType const[]) objects forKeys:(id<NSCopying> const[]) keys count:(NSUInteger) cnt;Parameters
- objects:
A C array of values for the new dictionary.
- keys:
A C array of keys for the new dictionary. Each key is copied (using Copy(with:); keys must conform to the
NSCopyingprotocol), and the copy is added to the new dictionary. - cnt:
The number of elements to use from the
keysandobjectsarrays.cntmust not exceed the number of elements inobjectsorkeys.
Discussion
This method steps through the objects and keys arrays, creating entries in the new dictionary as it goes. An NSInvalidArgumentException is raised if a key or value object is nil.
The following code fragment illustrates how to create a dictionary that associates the alphabetic characters with their ASCII values:
static const NSInteger N_ENTRIES = 26;
NSDictionary *asciiDict;
NSString *keyArray[N_ENTRIES];
NSNumber *valueArray[N_ENTRIES];
NSInteger i;
for (i = 0; i < N_ENTRIES; i++) {
char charValue = 'a' + i;
keyArray[i] = [NSString stringWithFormat:@"%c", charValue];
valueArray[i] = [NSNumber numberWithChar:charValue];
}
asciiDict = [NSDictionary dictionaryWithObjects:(id *)valueArray
forKeys:(id *)keyArray count:N_ENTRIES];