此类与键 scrollView 的键值编码不兼容
Posted
技术标签:
【中文标题】此类与键 scrollView 的键值编码不兼容【英文标题】:this class is not key value coding-compliant for the key scrollView 【发布时间】:2013-03-07 02:33:24 【问题描述】:我需要这方面的帮助。我已将 xcode 更新到最新版本,当我尝试进行测试时,旧代码会抛出错误“类与键滚动视图的键值编码不兼容。”
有趣的是,这里没有滚动视图。我有其他视图几乎完全相同的代码,它工作正常。这是代码。也没有笔尖,所以从视图中取出滚动视图将不起作用。
#import "pearGalleryController.h" #import "pearGallery.h" @implementation pearGalleryController - (void)viewDidLoad [超级视图DidLoad]; self.tableView.backgroundColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:100]; self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; self.navigationItem.title = @"各种梨"; - (void)didReceiveMemoryWarning // 如果没有超级视图,则释放视图。 [super didReceiveMemoryWarning]; // 释放所有未使用的缓存数据、图像等。 - (void)viewDidUnload #pragma mark 表格视图方法 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 返回 1; // 自定义表格视图中的行数。 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 返回 3; - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath; 返回 122; // 自定义表格视图单元格的外观。 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 静态 NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 如果(细胞 == 零) // cell 是 UITableViewCell 的一个对象 这将一个对象分配给一个 cell 2 个内存区域,o 需要在 alloc 上自动释放,因为它是一个对象 cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; cell.selectionStyle = UITableViewCellSelectionStyleNone; // 设置单元格... int picIndex = [indexPath 行]*3; UIButton* tempView = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 107,123)]; [tempView setImage:[UIImage imageNamed:[NSString stringWithFormat:@"pears_%d.png",picIndex]] forState:UIControlStateNormal]; tempView.tag = picIndex; [tempView addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside]; [cell.contentView addSubview:tempView]; [临时视图发布]; tempView = [[UIButton alloc]initWithFrame:CGRectMake(106, 0, 107,123)]; [tempView setImage:[UIImage imageNamed:[NSString stringWithFormat:@"pears_%d.png",picIndex+1]] forState:UIControlStateNormal]; tempView.tag = picIndex+1; [tempView addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside]; [cell.contentView addSubview:tempView]; [临时视图发布]; tempView = [[UIButton alloc]initWithFrame:CGRectMake(212, 0, 107,123)]; [tempView setImage:[UIImage imageNamed:[NSString stringWithFormat:@"pears_%d.png",picIndex+2]] forState:UIControlStateNormal]; tempView.tag = picIndex+2; [tempView addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside]; [cell.contentView addSubview:tempView]; [临时视图发布]; 返回单元格; -(void)buttonClick:(id)sender UIButton* btn = (UIButton*)sender; int 索引 = btn.tag; pearGallery *anotherViewController = [[pearGallery alloc] initWithNibName:@"pearGallery" bundle:[NSBundle mainBundle]]; anotherViewController.myIndex = 索引; [self.navigationController pushViewController:anotherViewController 动画:YES]; [另一个ViewController 版本]; UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil]; //UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"video.png"] style:UIBarButtonItemStylePlain target:nil action:nil]; self.navigationItem.backBarButtonItem = backButton; [返回按钮释放]; - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation return (interfaceOrientation == UIInterfaceOrientationPortrait); - (无效)dealloc [超级释放]; @结尾还有h文件
#进口 @interface pearGalleryController : UITableViewController @结尾【问题讨论】:
【参考方案1】:可能是您的 xib 文件中的悬空引用,请检查以确保清除引用。
【讨论】:
【参考方案2】:通常当您有一个对象时会发生此错误,在您的情况下,它是 'scrollView' 通过界面构建器附加到情节提要中的 scrollView 项目/ xib.
检查您在界面生成器中的链接(最右边的选项卡),并且您没有指向另一个 IBOutlet 的重复链接。
我发现只有当我链接一个对象然后“错误输入”我的链接时才会发生这种情况,我去更改它但不要从界面构建器中删除旧链接,即 SCrollview 和 scroLLview2
转到您的界面构建器(连接选项卡)并检查您没有重复的链接。 删除所有指向您的 'scrollview' 的链接和 're link' 到您的 .h 文件,然后重试
您可能输入了 scrollView,然后将其更改为 scrollview 并没有意识到......祝你好运
【讨论】:
以上是关于此类与键 scrollView 的键值编码不兼容的主要内容,如果未能解决你的问题,请参考以下文章
未捕获的异常 'NSUnknownKeyException' - 此类与键 buttonPressed 的键值编码不兼容