我有一个有四行的表,每行都有一个标题和开关作为附件。我希望在点击相应的开关时更新plist布尔值。
plist中:
<array>
<dict>
<key>Bools</key>
<array>
<false/>
<false/>
<false/>
<false/>
</array>
<key>Strings</key>
<array>
<string>String0</string>
<string>String1</string>
<string>String2</string>
<string>String3</string>
</array>
</dict>
</array>
以下是数据源方法:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView; {
return [allergens count];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section; {
return [[[allergens objectAtIndex: section] objectForKey: @"Strings"] count];
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section; {
return @"Header";
}
这是我的开关,带选择器:switchToggled
UISwitch *switchView = [[UISwitch alloc] initWithFrame:CGRectZero];
cell.accessoryView = switchView;
[switchView addTarget:self action:@selector(switchToggled:) forControlEvents: UIControlEventTouchUpInside];
以下是IBAction方法。我可以成功地让switch tapped
出现在日志中,所以我知道一切正常。我只是不确定如何获得正确的布尔值进行更新。
- (IBAction)switchToggled:(id)sender {
NSLog(@"switch tapped");
}
任何帮助表示赞赏!感谢。
答案 0 :(得分:0)
当我发布这个时,我对编程很新,我不知道我无法在运行时以编程方式编辑主bundle中的plist。我现在明白,要实现我想要的效果,我应该将起始plist保存到app文档目录并从中工作。我使用this文章来帮助格式化与文档目录之间保存和加载数据的过程。