2014-09-04 79 views
0

在我的cellForRowAtIndexPath,我有以下几点:iOS 8自定义单元格:这个类别不是关键字描述的关键字编码标准。

NSString *myIdentifier = [NSString stringWithFormat:@"ExpandableCell"]; 

ExpandableTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:myIdentifier]; 

这工作完全罚款的iOS 7,但现在它的崩溃在iOS 8,出现以下错误:

[<ExpandableTableViewCell 0x157d8980> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key description.' 

我已经看过在最常见的问题是网点连接到文件所有者,但我的xib不再有这个(见附件):

enter image description here

回答

3

有趣。所以我猜你不能有另一个名为'description'的变量。我的头文件抱怨说我不能这样做,而是我创建/重命名该属性为'desc',并且一切看起来都像往常一样。

这似乎并不像iOS 8之前的版本。

+2

“描述”自石器时代以来一直是NSObject的一种方法。如果你滥用它,盒子的故障可能会改变一次或两次,但是定义一个名为'description'的属性一直是一个错误。 – 2014-09-04 20:46:26

+0

如果应用程序在iOS 7上工作,这似乎是问题。如果意外地命名了其中一个变量“description”,并且它将其搞乱了。 – 2014-10-07 08:36:03

+0

这也发生在我身上。有一个以名称为描述的属性,当我迁移到Xcode 6时,崩溃开始发生。在较早的版本中,它是可以的,但也许他们现在做了一些限制描述作为变量/属性名称的用法。我不是iOS更改的专家,但使用其他名称是明智的。 – cessmestreet 2014-11-21 08:01:30

4

没错。回想一下NSObject有一个方法'description'。如果您要将描述用作核心数据中的属性,它将尝试创建访问器方法(即get,set),并因此与NSObject方法冲突。

相关问题