您好我对编程场景相对较新,并且一直在使用lynda.com来学习小项目的技能和实践。我按照教师指导的信,但我们的结果是完全不同的。我希望我的NSMutable数组中我的课程的“名称”字符串显示为我表格中单元格的标题,但是当我加载应用程序时,没有任何内容出现。请帮助一个无能的孩子!
这是我的类的代码,实现文件只包含我的属性的合成
#import "Class.h"
@implementation Course
@synthesize name,teacher,room;
@end
这是我的UITable视图控制器类的代码
#import "ScheduleTableViewController.h"
@interface ScheduleTableViewController ()
@end
@implementation ScheduleTableViewController
NSMutableArray *classes;
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
NSMutableArray *classes = [[NSMutableArray alloc]init];
Course *class = [[Course alloc]init];
[class setName:@"AP Psychology"];
[class setRoom:@"E203"];
[class setTeacher:@"Juiliette Forbes"];
[classes addObject:class];
[class setName:@"AP Literature"];
[class setTeacher:@"Kristen Holtz"];
[class setRoom:@"E207"];
[classes addObject:class];
[class setName:@"AP Physics"];
[class setTeacher:@"Peter Dalby"];
[class setRoom:@"D205"];
[classes addObject:class];
[super viewDidLoad];
}
- (void)viewDidUnload
{
[super viewDidUnload];
}
- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [classes count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"ClassCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
}
Course *current = [classes objectAtIndex:indexPath.row];
[cell.textLabel setText:[current name]];
return cell;
}
任何帮助都将得到很好的赞赏,希望我能跟上任何一个行话
答案 0 :(得分:0)
检查以确保您已正确设置表格单元格的标识符。
要执行此操作,请打开故事板编辑器并转到表格视图。单击原型单元格并打开“实用程序”窗格。检查“Identifier”是否为“ClassCell”。
接下来,确保您的ViewController是一个UITableViewController并实现UITableViewDelegate协议。目前尚不清楚你是否已经这样做了。
您的ScheduleTableViewController.h应该类似于:
#import <UIKit/UIKit.h>
@interface ScheduleTableViewController : UITableViewController <UITableViewDelegate>
// code
@end
另外,我在这里注意到了这一点:
NSMutableArray *classes = [[NSMutableArray alloc]init];
Course *class = [[Course alloc]init];
[class setName:@"AP Psychology"];
[class setRoom:@"E203"];
[class setTeacher:@"Juiliette Forbes"];
[classes addObject:class];
[class setName:@"AP Literature"];
[class setTeacher:@"Kristen Holtz"];
[class setRoom:@"E207"];
[classes addObject:class];
[class setName:@"AP Physics"];
[class setTeacher:@"Peter Dalby"];
[class setRoom:@"D205"];
[classes addObject:class];
由于* class是指向课程对象的指针,因此您实际上只创建了一个,然后继续编辑其属性并将其重新添加到数组中。像这样创建多个类对象:
Course *class1 = [[Course alloc] init];
// set properties
Course *class2 = [[Course alloc] init];
// set properties
Course *class3 = [[Course alloc] init];
// set properties
[classes addObjects:class1, class2, class3, nil];