Итак, с трудом разыменовывая некоторые данные, которые я загрузил в массивы и словари:
Внутри контроллера:
- (void)setupVendorsArray {
self.vendorsArray = [NSArray arrayWithObjects:@"Toyota", @"Honda",nil];
}
- (void)setupProductFamiliesHash {
NSArray *lowcost = [NSArray arrayWithObjects:@"Corolla", @"Fit",nil];
NSArray *midrange = [NSArray arrayWithObjects:@"Camry", @"Accord",nil];
NSArray *highend = [NSArray arrayWithObjects:@"Lexus", @"Acura",nil];
NSArray *trucks = [NSArray arrayWithObjects:@"Tacoma", @"Ridgeline",nil];
NSDictionary *lc = [NSDictionary dictionaryWithObjects:lowcost forKeys:self.vendorsArray];
NSDictionary *mr = [NSDictionary dictionaryWithObjects:midrange forKeys:self.vendorsArray];
NSDictionary *he = [NSDictionary dictionaryWithObjects:highend forKeys:self.vendorsArray];
NSDictionary *tk = [NSDictionary dictionaryWithObjects:trucks forKeys:self.vendorsArray];
self.productFamiliesHash = [NSArray arrayWithObjects:lc,mr,he,tk,nil];
}
В gdb print-object это приводит к productFamiliesHash:
(gdb) print-object self.productFamiliesHash
<__NSArrayI 0x6b2c760>(
{
Toyota = "Corolla";
Honda = "Fit";
},
{
Toyota = "Camry";
Honda = "Accord";
},
{
Toyota = "Lexus";
Honda = "Acura";
},
{
Toyota = "Tacoma";
Honda = "Ridgeline";
}
)
Но, судя по всему, я не могу получить доступ, например, к Toyota Corolla, что, как я ожидаю, я мог бы сделать так в gdb:
(gdb) p [[productFamiliesHash objectAtIndex:0] objectForKey:@"Toyota"]
Однако GDB дает:
Unable to call function "objc_msgSend" at 0x156408c: no return type information available.
Как разыменовать словарь в массиве?