数据从故事板中的视图检索到UITableViewCell

时间:2013-11-26 13:00:11

标签: ios objective-c uitableview

我在Xcode中遇到同样的错误并且无法弄清楚为什么(我的坏) 我尝试使用下面的uitexfield代码检索已保存的数据 该部分用于保存

- (IBAction)saveCourseDetail:(id)sender
{
    NSMutableDictionary *courseDictionary=[NSMutableDictionary new];
    [courseDictionary setObject:courseName.text forKey:@"courseName"];
    [courseDictionary setObject:courseDescription.text forKey:@"courseDescription"];
    [courseDictionary setObject:classRoom.text forKey:@"classRoom"];
    [courseDictionary setObject:teacherName.text forKey:@"teacherName"];
    [courseDictionary setObject:buildingName.text forKey:@"buildingName"];

    NSUserDefaults *savedData=[NSUserDefaults standardUserDefaults];
    [savedData setObject:courseDictionary forKey:@"courseDictionary"];
    [savedData synchronize];
//    [self.delegate reloadTableData];
    [[NSNotificationCenter defaultCenter] postNotificationName:@"CourseAddedNotification" object:nil];
    [self.navigationController popViewControllerAnimated:YES];
}
#pragma  mark Course Tableview


    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        NSString *string = [_dataArray objectAtIndex:indexPath.row];

        NSString *CellIdentifier = @"Cell";

        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

        if(cell==nil)
        {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault  reuseIdentifier:CellIdentifier];
        }
        cell.textLabel.text=string;

        return cell;
    }
    and the tableview that i'm trying to get the saved course details 



#pragma  mark - Table View Delegate -

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return 10;
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    CourseCell *cell=[tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
    if (!cell) {
        cell = [[CourseCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
    }
    return cell;
}

但我一直得到同样的错误 - 2013-11-26 14:43:19.496 SidebarDemo [1170:70b] *断言失败 - [UITableView dequeueReusableCellWithIdentifier:forIndexPath:],/ SourceCache / UIKit_Sim / UIKit-2903.23 / UITableView.m:5261 2013-11-26 14:43:19.500 SidebarDemo [1170:70b] * 由于未捕获的异常终止应用程序' NSInternalInconsistencyException',原因:'无法使用标识符Cell将单元格出列 - 必须为标识符注册一个笔尖或类,或者在故事板中连接一个原型单元'

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

您必须在attributinspector 4.tab中设置故事板中的单元格标识符。标识符必须等于源代码中的标识符(此处为“Cell”)。

答案 1 :(得分:0)

您必须使用

static NSString *CellIdentifier = @"messageCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

不要使用

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

Apple文档:

重要

在调用此方法之前,必须使用registerNib:forCellReuseIdentifier:或registerClass:forCellReuseIdentifier:方法注册类或nib文件。

答案 2 :(得分:0)

identifier添加到uitableviewCell中的storyboard,提供名称" Cell"与您在cellForRowAtIndexPath:方法

中使用的相同