views:

414

answers:

1

Hi, I am trying to get a string out of a plist file that contains a nested dictionary. This is the plist:

<dict>
    <key>DataPoints</key>
    <array>
        <dict>
            <key>source</key>
            <string>BloomBerg</string>
            <key>date</key>
            <date>2010-01-31T14:54:13Z</date>
            <key>value</key>
            <integer>1233</integer>
        </dict>
        <dict>
            <key>source</key>
            <string>BloomBerg</string>
            <key>date</key>
            <date>2010-02-02T14:54:13Z</date>
            <key>value</key>
            <integer>1235</integer>
        </dict>
        <dict>
            <key>source</key>
            <string>BloomBerg</string>
            <key>date</key>
            <date>2010-01-31T14:54:13Z</date>
            <key>value</key>
            <integer>1230</integer>
        </dict>
    </array>
</dict>

Here is my code:

NSString *path = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"sampledata.plist"];
NSDictionary* plotDictionary = [[NSDictionary dictionaryWithContentsOfFile:path] retain];
NSArray* plotData = [plotDictionary objectForKey:@"DataPoints"];

NSLog(@"Got the dict %d",[plotData count]);

NSDictionary* plotPoint = [plotData objectAtIndex:1];

NSLog(@"Got the point %d",[plotPoint count]);

NSString* source = [plotPoint objectForKey:@"source"]; 
NSLog(@"...", source);

I get the counts of the arrays and the dicts but not the value of the string. Probably doing something simple wrong...

+2  A: 

Last line, you put NSLog(@"…", source);. Don't you want NSLog(@"%@", source);?

Ziggamorph
Pfffff... Took me all afternoon... Sorry and thanks for the help!
Nick