我有一个显示在表格视图上的项目列表。每个项目都有其属性,例如名称、图片、等级等。我的目标是,每次用户选择一行时,都会将项目及其属性添加到新列表中。
我创建了一个名为的新列表listOfBugs
,因为我希望它是全局的,所以我在里面分配并初始化了它viewDidLoad
。(这样做合适吗?)
这是我的代码:
主视图控制器.h
@interface MasterViewController : UITableViewController
{
NSMutableArray *listOfBugs;
}
@property (strong) NSMutableArray *bugs;
主视图控制器.m
- (void)viewDidLoad
{
[super viewDidLoad];
listOfBugs = [[NSMutableArray alloc]init];
self.title = @"Scary Bugs";
}
...
...
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
ScaryBugDoc *bug = [self.bugs objectAtIndex:indexPath.row];
UIAlertView *messageAlert = [[UIAlertView alloc]
initWithTitle:@"Row Selected" message:bug.data.title delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[messageAlert show];
[listOfBugs addObject:bug];
NSLog(@"this is %@",listOfBugs);
}
使用NSLog
我可以看到添加了对象:
ScaryBugs[1195:11303] this is <ScaryBugDoc: 0x75546e0>
2012-12-05 17:45:13.100
ScaryBugs[1195:11303] this is <ScaryBugDoc: 0x75546e0>
我有几个问题。
1.如何访问数组 listOfBugs 内对象的属性?
更新:这对我有用:
NSLog(@"this is %@",((ScaryBugDoc *)[listOfBugs objectAtIndex:0]).data.title);
但我无法listOfBugs
从另一个班级访问。
我按照建议将它变成了一个属性,以使我的生活更轻松,但仍然无法从另一个班级访问它。例如 inlistOfBugsViewController.m
return [_listOfBugs count];
会给我错误 Use of undeclared identifier '_listOfBugs'
2.我想用自定义列表填充表格视图,我该怎么做?
完成后,我想将列表保存为 plist,并轻松地从中添加和删除对象,因此我需要考虑这一点。