【发布时间】:2014-02-20 23:50:22
【问题描述】:
我正在从 plist(复制到文档)中调用数据,该数据具有 0 或 1 值,具体取决于我是否要选择复选框。 cell.m 文件中的代码如下,但我似乎无法更改复选框是否被选中。
主视图代码:
#import "ffguideViewController.h"
#import "booksCell.h"
@interface ffguideViewController ()
@end
@implementation ffguideViewController
{
NSArray *title;
NSArray *thumbnails;
NSArray *price;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Find out the path of books_star.plist
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *plistPath = [documentsDirectory stringByAppendingPathComponent:@"books_star.plist"];
// Load the file content and read the data into arrays
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:plistPath];
title = [dict objectForKey:@"title"];
thumbnails = [dict objectForKey:@"thumbnail"];
price = [dict objectForKey:@"price"];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [title count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *books_starTableIdentifier = @"booksCell";
booksCell *cell = (booksCell *)[tableView dequeueReusableCellWithIdentifier:books_starTableIdentifier];
if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"booksCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
cell.titleLabel.text = [title objectAtIndex:indexPath.row];
cell.thumbnailImageView.image = [UIImage imageNamed:[thumbnails objectAtIndex:indexPath.row]];
cell.priceLabel.text = [price objectAtIndex:indexPath.row];
return cell;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 104;
}
@end
单元格代码:
#import "booksCell.h"
@implementation booksCell
@synthesize titleLabel = _titleLabel;
@synthesize priceLabel = _priceLabel;
@synthesize thumbnailImageView = _thumbnailImageView;
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {}
return self;}
- (void) awakeFromNib {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *plistPath = [documentsDirectory stringByAppendingPathComponent:@"books_star.plist"];
// Load the file content and read the data into arrays
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:plistPath];
NSString *checked = [dict objectForKey:@"check"];
NSLog(@"%@", [[dict objectForKey:@"check"] class]);
NSLog(@"Checked %@", checked);
int checkedINT = [checked intValue];
NSLog(@"CheckedInt %d", checkedINT);
if (checkedINT == 1){
checkedImage.image = [UIImage imageNamed:@"check_on.png"];
} else {
checkedImage.image = [UIImage imageNamed:@"check_off.png"];}}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end
列表:
<key>title</key>
<array>
<string>Book 1</string>
<string>Book 2</string>
<string>Book 3</string>
<string>Book 4</string>
<string>Book 5</string>
<string>Book 6</string>
</array>
<key>thumbnail</key>
<array>
<string>test.jpg</string>
<string>test.jpg</string>
<string>test.jpg</string>
<string>testjpg</string>
<string>test.jpg</string>
<string>test.jpg</string>
<string>test.jpg</string>
</array>
<key>price</key>
<array>
<string>£1.00</string>
<string>£2.00</string>
<string>£3.00</string>
<string>£4.00</string>
<string>£5.00</string>
<string>£6.00</string>
<string>£7.00</string>
</array>
<key>check</key>
<array>
<string>1</string>
<string>0</string>
<string>0</string>
<string>1</string>
<string>0</string>
<string>1</string>
<string>0</string>
</array>
</dict>
</plist>
【问题讨论】:
-
我知道这对你来说可能都是新的,但只是一个善意的建议:如果你还没有,学习使用调试器和 NSLogs。使用调试器,学习如何逐行执行代码、检查变量值(在应用程序运行时)、设置断点等。这将有助于解开“不工作”的一些谜团。
-
这段代码需要格式化:(你怎么能用所有的随机括号来阅读这个
标签: ios uitableview