首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UITableViewCell - setValue: forUndefinedKey:

UITableViewCell - setValue: forUndefinedKey:
EN

Stack Overflow用户
提问于 2012-02-14 06:46:41
回答 3查看 4.8K关注 0票数 3

我有一个UITableViewCell,并希望将一个自定义对象绑定到它。我知道的唯一选项是创建一个自定义单元格,如下所示:

代码语言:javascript
运行
复制
MyCustomCell *cell = [[MyCustomCell alloc] initWithFrame:<SomeFrame>];
customCell.myProperty = someObject;

我很想知道Objective是否提供了其他方法来实现这个目的,而不是创建一个customCell。

在阅读时,我点击了这个文档NSObject valueForUndefinedKey:

我试了一下,应用程序就崩溃了。

代码语言:javascript
运行
复制
UITableViewCell *cell = [[UITableViewCell alloc] initWithFrame:<SomeFrame>];
[cell setValue:someObject forUndefinedKey:@"SomeObject"];

崩溃日志显示:

代码语言:javascript
运行
复制
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UITableViewCell 0x5a846c0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key SomeObject.'

请帮我处理这个。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-14 09:19:26

您可以使用关联对象来避免子类。至于setValue:forKey:setValue:forUndefinedKey:,详细信息请查看头文件(NSKeyValueCoding.h)。

票数 2
EN

Stack Overflow用户

发布于 2012-03-21 13:43:33

当在CustomCell nib的接口生成器中,文件的所有者自定义类设置为CustomCell类时,就会发生此问题。

文件的所有者自定义类应该始终设置为UITableViewCell。表视图对象自定义类应该设置为CustomCell类。示例(NotificationCell是我的自定义单元格类):

票数 4
EN

Stack Overflow用户

发布于 2012-02-14 07:35:51

正如文档中所说的,The default implementation raises an NSUndefinedKeyException.。如果要使用该方法,则必须在自定义类中重写它。

另外,不要对单元格进行bind,这意味着不在单元格对象中保留外部对象。首先,这破坏了MVC模式。其次,您很可能在单元重用方面遇到问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9272806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档