Привет, ребята. Я хочу прочитать следующий plist-файл в память и выполнить некоторые вычисления с результатами, plist-файл выглядит следующим образом, это только часть его, чтобы показать структуру:
<dict>
<key>Stations</key>
<array>
<dict>
<key>Name</key>
<string>Hatfield</string>
<key>Coords</key>
<dict>
<key>Lat</key>
<integer>0</integer>
<key>Long</key>
<integer>0</integer>
</dict>
<key>Routes</key>
<array>
<dict>
<key>Name</key>
<string>H1 Hatfield - Brooklyn</string>
<key>Stops</key>
<array>
<dict>
<key>Name</key>
<string>Burnett St & Festival St</string>
<key>Coords</key>
<dict>
<key>Lat</key>
<string>-25.75081</string>
<key>Long</key>
<string>28.23272</string>
</dict>
</dict>
<dict>
<key>Name</key>
<string>University Rd & Lynwood Rd</string>
<key>Coords</key>
<dict>
<key>Lat</key>
<string>-25.75592</string>
<key>Long</key>
<string>28.22517</string>
</dict>
</dict>
<dict>
<key>Name</key>
<string>Roper St & Charles St</string>
<key>Coords</key>
<dict>
<key>Lat</key>
<string>-25.76463</string>
<key>Long</key>
<string>28.22737</string>
</dict>
</dict>
В настоящее времяЯ пытаюсь прочитать их, используя следующее:
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"Busses.plist"];
NSDictionary *plistData = [[NSDictionary dictionaryWithContentsOfFile:finalPath] retain];
NSMutableArray *arrayOfStationsFromFile = [[[NSMutableArray alloc] initWithObjects:[plistData objectForKey:@"Stations"], nil] retain];
for(int i = 0; i < [arrayOfStationsFromFile count]; i++)
{
NSDictionary *stationWithBusses = (NSDictionary *)[[arrayOfStationsFromFile objectAtIndex:i] retain];
NSMutableArray *routes = [[stationWithBusses objectForKey:@"Routes"] retain];
for(int j = 0; j < [routes count]; j++)
{
NSMutableDictionary *routesData = [routes objectAtIndex:j];
NSString *name = [routesData objectForKey:@"Name"];
NSMutableArray *stops = [routesData objectForKey:@"Stops"];
for(int x = 0; x < [stops count]; x++)
{
NSMutableDictionary *stopsData = [stops objectAtIndex:x];
NSString *subName = [stopsData objectForKey:@"Name"];
NSMutableDictionary *coords = [stopsData objectForKey:@"Coords"];
NSString *latt = [coords objectForKey:@"Lat"];
NSString *longs = [coords objectForKey:@"Long"];
CLLocationCoordinate2D coordinate;
coordinate.latitude = [latt longLongValue];
coordinate.longitude = [longs longLongValue];
[busses addObject:[[Busses alloc] initWithName:name subName:subName coordinate:coordinate]];
}
}
}
Но я получаю SIGABRT в этой строке
NSMutableArray *routes = [[stationWithBusses objectForKey:@"Routes"] retain];
Первая строка вывода консоли:
2011-08-30 12:31:57.699 GautrainiPhone[12633:e903] -[__NSCFArray objectForKey:]: unrecognized selector sent to instance 0x5ba6c10
Есть идеи, что я делаю не так?