Я не уверен, является ли это вашим примером или вашей терминологией, но на самом деле это не многомерный массив, это массив записей. Я бы сделал каждую вашу запись классом:
@interface Employee
NSString* name;
NSString* dept;
NSString* year;
@end
@property (nonatomic,retain) NSString* name;
@property (nonatomic,retain) NSString* dept;
@property (nonatomic,retain) NSString* year;
// ... rest of class def
Employee* a = [[Employee alloc] init];
a.name = @"Bob";
a.dept = @"Sales";
a.year = @"2008";
// declare others
NSArray* array = [NSArray arrayWithObjects:a,b,c,nil];
[a release];
Это более объективная критика, чем использование struct
.
Если вы действительно имеете в виду многомерный массив, тогда нет ничего плохого в "очевидном" подходе. Конечно, вы можете захотеть обернуть его в класс, чтобы вы могли написать несколько служебных методов, чтобы было легче с ним справиться.