在PList中访问UITableView中的词典

时间:2011-10-12 07:48:23

标签: ios xcode4

我想创建一个简单的参考应用程序,列出一组人,他们的职位和他们的肖像。到目前为止,我所拥有的是人员名单和职称。它运作正常,但我认为我应该采用不同的方式。

从阅读其他帖子,我想我应该使用词典。这就是我的PList目前的样子:

my plist

这就是我的代码的重要部分:

@implementation RootViewController

@synthesize staffArray, subtitleArray;


- (void)viewDidLoad
{
    [super viewDidLoad];
    NSString* path = [[NSBundle mainBundle] pathForResource:@"StaffData" ofType:@"plist"];
    NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];
    NSMutableArray *tmpNameArray = [dict objectForKey:@"Root"];
    self.staffArray = [[NSMutableArray alloc] initWithArray:tmpNameArray copyItems:YES];
    NSMutableArray* tmpSubtitleArray = [dict objectForKey:@"Subs"];
    self.subtitleArray = [[NSMutableArray alloc] initWithArray:tmpSubtitleArray copyItems:YES];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [staffArray count];
}

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}

// Configure the cell.
cell.textLabel.text = [staffArray objectAtIndex:indexPath.row];
cell.detailTextLabel.text = [subtitleArray objectAtIndex:indexPath.row];
return cell;
}

我认为使用两种阵列会破坏OOP的目的,因为在这种情况下,人们与他们的职称无关;他们碰巧是在同一个顺序。我想创建例如:

数组名为Jonas,第一个值=作业标题,第二个值= pathToImage.png。

另一个名为Andreas等的数组等等。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

我认为,首先,您的设计缺少“员工”对象,其中包含“名称”,“JobTitle”等数据成员......完成此设置后,只需创建一组人员和从索引中拿出你需要的任何东西。