我是ObjectiveC的新手,并且正在开发一个customTableView,直到我运行应用程序并且没有显示任何内容,除了一个包含线条的blanc表之外 我试图找到问题的解决方案,但到目前为止没有运气 下面是代码和附上的图片
非常感谢任何帮助
#import "ContactsTableViewController.h"
#import "CustomCell.h"
@interface ContactsTableViewController ()
@property (nonatomic, strong) NSArray *ContactsArray;
@property (nonatomic, strong) NSDictionary *Contact;
@end
@implementation ContactsTableViewController
@synthesize ContactsArray, Contact;
- (id) initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self)
{
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *path = [[NSBundle mainBundle]pathForResource:@"Contacts" ofType:@"plist"];
ContactsArray = [NSArray arrayWithContentsOfFile:path];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [ContactsArray count];
}
- (UITableViewCell *)tableView:(UITableView *) tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
static NSString *CellIdentifier = @"Cell";
CustomCell *customCell = [tableView dequeueReusableCellWithIdentifier: CellIdentifier forIndexPath: indexPath];
ContactsArray = ContactsArray [indexPath.row];
NSString *firstName = Contact[@"firstName"];
NSString *lastName = Contact[@"lastName"];
NSString *imageName = Contact[@"imageName"];
UIImage *image = [UIImage imageNamed:imageName];
customCell.CustomFirstNameLabel.text = firstName;
customCell.CustomLastNameLabel.text= lastName;
customCell.CustomImageView.image = image;
return customCell;
{
答案 0 :(得分:0)
欢迎来到StackOverflow
您可以通过以下方式调试此问题:
1.检查ContactsTableViewController
是否为UITableViewController
的孩子
2.如果不是上述情况,请检查dataSource
的{{1}}属性
(例如:tableView
)
3.检查tableView.dataSource = self;
是否与tableView
(Interface Builder
或xib
)相关联
4.确保storyboard
实施ContactsTableViewController
5.尝试NSLog记录UITableViewDataSource
的值。
6.最后(但并非最不重要)尝试在填充ContactsArray
后调用tableView的reloadData方法。
希望这有帮助!
答案 1 :(得分:0)
三个问题
替换
ContactsArray = ContactsArray[indexPath.row];
与
Contact = ContactsArray[indexPath.row];
您必须显式重新加载表视图。添加
[tableView reloadData];
在viewDidLoad
的末尾。
您必须将自定义单元格强制转换为实际类型
CustomCell *customCell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier: CellIdentifier forIndexPath: indexPath];
此外,您可以删除整个initWithStyle
方法,因为它实际上不执行任何操作。最后但并非最不重要的是遵循命名约定来使用以小写字母开头的变量名。