我正在从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
plist中:
<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>
答案 0 :(得分:2)
移动
return self;
到代码运行之前的函数结束。
将来使用断点来查看代码是否已执行。
关于我们讨论中提出的第二部分问题:
您正在从XIB(loadNibNamed)创建UITableViewCell。在这种情况下,不使用initWithStyle:而不是在以下方面实现您的自定义逻辑:
- (void) awakeFromNib