1

您好,我对编程领域比较陌生,并且一直在使用 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;
}

任何帮助将不胜感激,希望我能跟上任何术语

4

1 回答 1

0

检查以确保您已正确设置表格单元格的标识符。

为此,请打开您的故事板编辑器并转到您的表格视图。单击原型单元并打开实用程序窗格。检查“标识符”是否为“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];
于 2013-01-03T03:39:15.133 回答