Reputation: 15715
I'm new to Objective-C, so there probably is a pretty easy solution for what I'm doing. The problem that I'm having is that for some reason, the following code doesn't add the contents from my plist file into my array:
In my viewDidLoad function:
// Grab information from the plist
NSBundle *bundle = [NSBundle mainBundle];
NSString *plistPath = [bundle
pathForResource:@"conversions"
ofType:@"plist"
];
NSArray *array = [[NSArray alloc]
initWithContentsOfFile:plistPath
];
File "conversions.plist", in the same folder as the above code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Categories</key>
<array>
<dict>
<key>name</key>
<string>Speed</string>
<key>conversions</key>
<array>
<dict>
<key>type</key>
<string>mph</string>
<key>description</key>
<string>mile/hour</string>
<key>multiplier</key>
<integer>1</integer>
</dict>
<dict>
<key>type</key>
<string>ft/s</string>
<key>description</key>
<string>foot/second</string>
<key>multiplier</key>
<real>1.466667</real>
</dict>
<dict>
<key>type</key>
<string>km/h</string>
<key>description</key>
<string>kilometer/hour</string>
<key>multiplier</key>
<real>1.609344</real>
</dict>
<dict>
<key>type</key>
<string>m/s</string>
<key>description</key>
<string>meter/second</string>
<key>multiplier</key>
<real>0.44704</real>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>Distance</string>
<key>conversions</key>
<array>
<dict>
<key>type</key>
<string>ft</string>
<key>description</key>
<string>feet</string>
<key>multiplier</key>
<integer>1</integer>
</dict>
<dict>
<key>type</key>
<string>yd</string>
<key>description</key>
<string>yard</string>
<key>multiplier</key>
<real>0.3333333</real>
</dict>
<dict>
<key>type</key>
<string>mi</string>
<key>description</key>
<string>mile</string>
<key>multiplier</key>
<real>0.0001894</real>
</dict>
<dict>
<key>type</key>
<string>in</string>
<key>description</key>
<string>inch</string>
<key>multiplier</key>
<integer>12</integer>
</dict>
<dict>
<key>type</key>
<string>m</string>
<key>description</key>
<string>meter</string>
<key>multiplier</key>
<real>0.3048</real>
</dict>
<dict>
<key>type</key>
<string>km</string>
<key>description</key>
<string>kilometer</string>
<key>multiplier</key>
<real>0.0003048</real>
</dict>
<dict>
<key>type</key>
<string>cm</string>
<key>description</key>
<string>centimeter</string>
<key>multiplier</key>
<real>30.48</real>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>Volume</string>
<key>conversions</key>
<array>
<dict>
<key>type</key>
<string>ft^3</string>
<key>description</key>
<string>cubic feet</string>
<key>multiplier</key>
<integer>1</integer>
</dict>
<dict>
<key>type</key>
<string>liter</string>
<key>description</key>
<string>liter</string>
<key>multiplier</key>
<real>28.31685</real>
</dict>
<dict>
<key>type</key>
<string>acre ft</string>
<key>description</key>
<string>acre foot</string>
<key>multiplier</key>
<real>2.3e-05</real>
</dict>
<dict>
<key>type</key>
<string>barrel</string>
<key>description</key>
<string>barrel [US, liquid]</string>
<key>multiplier</key>
<real>0.2374768</real>
</dict>
<dict>
<key>type</key>
<string>gallon</string>
<key>description</key>
<string>gallon [US, liquid]</string>
<key>multiplier</key>
<real>29.92208</real>
</dict>
<dict>
<key>type</key>
<string>quart</string>
<key>description</key>
<string>quart [US, liquid]</string>
<key>multiplier</key>
<real>29.92208</real>
</dict>
</array>
</dict>
</array>
</dict>
</plist>
Upvotes: 0
Views: 419
Reputation: 12917
It seems to me that the root object in your plist is a dict and not an array, aren't you supposed to load it into NSDictionary?
NSDictionary *dictionary = [[NSDictionary alloc] initWithContentsOfFile:plistPath];
Upvotes: 7