In an app I’m developing I want to be able to save color table specification (or color scheme) files into a designated directory, then let the user pick a file to use to create images (Mandelbrot and Julia set fractals)
The description of a color scheme contains integers, floats, RGB color structs, and an NSARRAY of color band objects.
I want to create a complex dictionary object that includes a couple of NSArrays. One of those arrays, in turn, will contain a dictionary object, that will contain OTHER structures.
I want to use the dictionaryWithObjects call to map my object’s data structures into a dictionary. I’m not sure how to specify the key values for the objects, however. Here’s a code snippet:
NSDictionary* temp_dictonary = [NSDictionary dictionaryWithObjects: [NSArray arrayWithObjects: [NSNumber numberWithInt: gradient_type] [NSNumber numberWithFloat: adjustment_value] //more values here [NSArray arrayWithObjects: [NSNumber numberWithFloat: start_color.red] [NSNumber numberWithFloat: start_color.green] [NSNumber numberWithFloat: start_color.blue], nil ] [NSArray arrayWithObjects: [NSNumber numberWithFloat: start_color.red] [NSNumber numberWithFloat: start_color.green] [NSNumber numberWithFloat: start_color.blue], nil ] [NSNumber numberWithnumberWithBool: use_wobble] [NSArray arrayWithObjects: [NSNumber numberWithFloat: wobble_hue_change] [NSNumber numberWithFloat: wobble_sat_change] [NSNumber numberWithFloat: wobble_brightness_change], nil ] [NSNumber numberWithfloat: wobble_adjustment], nil ] forKeys: [NSArray arrayWithObjects: @"gradient_type", @"adjustment_value, //>>>>How do I specify the keys for the array and it's objects?>>> nil]];
How do I create my array of key objects? Do I mimic the structure of the “array of arrays” that I use to specify my values? What’s the syntax?
The data structure above is a “color band” object. It is owned by a color scheme object. The color scheme object has a bunch of instance variables, and then an NSArray of color scheme objects. I’m assuming that once I can pack my color band objects into a dictionary, I can THEN create a color scheme dictionary, defined as its own complex array of values, including the NSArray of color band dictionaries.
Any help would be appreciated.
Why is this a dictionary? You might want to consider creating some classes instead. :P
I am getting read to write some configuration files to a plist (actually XML) file so the user can load and edit color scheme files outside of the program. After creating the dictionary, I write it to disk with NSDictionary writeToFile:atomically:
Code formatting fixed. See TextFormattingRules.
Thanks for the formatting fix. I’m new to the this site, and didn’t know how to do this.