Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 为什么不是';我的UITableViewCell没有被铸造吗?_Objective C_Ios_Casting - Fatal编程技术网

Objective c 为什么不是';我的UITableViewCell没有被铸造吗?

Objective c 为什么不是';我的UITableViewCell没有被铸造吗?,objective-c,ios,casting,Objective C,Ios,Casting,在我的表视图的cellforrowatinexpath中 MenuItemCell *cell = (MenuItemCell *)[[[NSBundle mainBundle] loadNibNamed:@"ResultCell" owner:nil options:nil] objectAtIndex:0]; 在您告诉我不要使用xib之前:我有多个表视图,它们的单元格需要看起来相同。使用xib似乎是实现这一目标的最佳方式 所讨论的结果Cell xib由MenuItemCell拥有MenuI

在我的表视图的
cellforrowatinexpath

MenuItemCell *cell = (MenuItemCell *)[[[NSBundle mainBundle] loadNibNamed:@"ResultCell" owner:nil options:nil] objectAtIndex:0];
在您告诉我不要使用xib之前:我有多个表视图,它们的单元格需要看起来相同。使用xib似乎是实现这一目标的最佳方式

所讨论的结果Cell xib由
MenuItemCell
拥有
MenuItemCell
UITableViewCell
的另一个子类的子类

问题是:我将断点直接放在单元格分配行之后,下面是我的lldb结果:

(lldb) po [cell class]
(id) $3 = 0x00b6b5fc UITableViewCell

为什么我的单元格是
UITableViewCell
而不是
MenuItemCell
?(或者可能是这样的,
po
不是解决这个问题的正确方法?

您可能没有告诉Xcode/Interface Builder从XIB实例化MenuItemCell,因此它使用默认实现,即UITableViewCell。注意,强制转换对象只会使编译器相信它是指定类的实例;它不会神奇地将对象转换为类的实例。(换句话说,它是一个copmile时间表达式,而不是运行时表达式。)

您可能没有告诉Xcode/Interface Builder从XIB实例化MenuItemCell,因此它使用默认实现,即UITableViewCell。注意,强制转换对象只会使编译器相信它是指定类的实例;它不会神奇地将对象转换为类的实例。(换句话说,它是一个copmile时间表达式,而不是运行时表达式。)

您可以使用isKindOfClass方法始终检查对象是否属于某个类

[cell isKindOfClass:[MenuItemCell类]]


还有,就像H2CO3所说的。您可能忘记将owner类设置为MenuItemCell。

您可以使用isKindOfClass方法始终检查对象是否属于某个类

[cell isKindOfClass:[MenuItemCell类]]


还有,就像H2CO3所说的。您可能忘记将owner类设置为MenuItemCell。

下面是如何设置NIB文件的owner类的屏幕截图


下面是如何设置NIB文件的所有者类的屏幕截图


ResultCell.xib在文档大纲中选择“文件所有者”时,在Identity inspector的自定义类字段中显示“MenuItemCell”。当在文档大纲中选择单元格时,它是否必须显示相同的内容?酷。顺便说一句,我不使用Xcode,所以我不知道如何设置这些棘手的属性(我总是从代码创建所有内容,而且我不在Mac上…)ResultCell.xib在文档大纲中选择“文件所有者”时,在Identity inspector的自定义类字段中显示“MenuItemCell”。当在文档大纲中选择单元格时,它是否必须显示相同的内容?酷。顺便说一句,我不使用Xcode,所以我不知道如何设置那些棘手的属性(我总是从代码创建所有内容,而且无论如何我不在Mac上…)