テーブルビューに表示されるアイテムのリストがあります。すべてのアイテムには、名前、写真、ランクなどのプロパティがあります。私の目標は、ユーザーが行を選択するたびに、そのプロパティを持つアイテムが新しいリストに追加されることです。
と呼ばれる新しいリストを作成しました。listOfBugs
グローバルにしたいので、内部で割り当てて初期化しましたviewDidLoad
。(それは適切なことですか?)
これが私のコードです:
MasterViewController.h
@interface MasterViewController : UITableViewController
{
NSMutableArray *listOfBugs;
}
@property (strong) NSMutableArray *bugs;
MasterViewController.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];
は、宣言されていない識別子'_listOfBugs'の使用というエラーを表示します。
2.カスタマイズされたリストをテーブルビューに入力するのに苦労したいのですが、どうすればよいですか?
それを達成した後、リストをplistとして保存し、オブジェクトを簡単に追加および削除したいので、それを考慮する必要があります。