在segue期间的nsunknownkeyexception

时间:2012-08-15 03:57:52

标签: objective-c uistoryboardsegue

所以我试着用UITableView写一些东西,然后分成UITextview。

在UITextview中有一个用于清除文本的按钮。 我有两个问题。

现在我得到一个错误

Terminating app due to uncaught exception 'NSUnknownKeyException', reason:      '[<textViewController 0x6e69760> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key clearButton.'

断点表示当在didSelectRowAtIndexPath中调用performSegue时抛出此内容

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self performSegueWithIdentifier:@"segueIdentifier" sender:self];
}

这里

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    if( [segue.identifier isEqualToString:@"fileSelected"]){
    textViewController *nextViewController = segue.destinationViewController ;
    nextViewController.title = @"newView";

    [nextViewController setText:[[NSString alloc] initWithData:[self readFromFile:@"textfile.txt"] encoding:NSUTF8StringEncoding]];
}
}

还有。我试图使用从文件系统中的文件读取的数据设置textview文本 继承读写功能,这是无效的......

-(NSData*) readFromFile:(NSString *)filename{
NSString* content = @"";
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory, filename];

content = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];

return [content dataUsingEncoding:NSUTF8StringEncoding];
}
-(void) saveToFile:(NSString *)filename withData:(NSData *)data{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [NSString stringWithFormat:@"%@/%@",documentsDirectory,filename];
[data writeToFile:filePath atomically:YES];
}

我在segue期间做错了什么,导致异常?如果你需要任何其他代码,那么就把它放好。

提前致谢

2 个答案:

答案 0 :(得分:0)

检查您是否有一个名为“segueIdentifier”的segue。那将是第一步。

答案 1 :(得分:0)

这个问题出现在 之后是由于视图和控制器之间连接断开造成的:

screenshot
(下面的一个坏了)


您只需删除连接并重新添加即可。