【发布时间】:2012-12-09 23:41:36
【问题描述】:
我有一个名为 Product 的 UIView,其中包含一个名为 Postcode 的子 UIView。
在邮政编码UIView 中,我有一个简单的表格(一个UITextField 和一个UIButton)。
当单击UIButton 时,一个方法(称为-storeData)会在邮政编码视图中运行...按预期工作。
现在在storeData里面我想调用superview Product中的一个方法。
这是我尝试做的,但我收到警告:
if ([[self superview] class] == [ProductView class]) {
ProductView *p = [self superview];
[p handlePostChange];
}
// 从这一行得到这个警告ProductView *p = [self superview];
PostView.m:124:28:初始化不兼容的指针类型 带有“UIView *”类型表达式的“ProductView *__strong”
【问题讨论】:
-
超类不知道子类。
-
是的..但我在子类中进行此检查...
-
是的,但这仍然不能让超类知道子类。你不是在编辑超类,是吗?
-
我认为通过超级视图实现的协议使超级视图成为子视图的代表,您正在尝试做的事情会更好。
-
顺便说一句,您通常使用
isKindOfClass或isMemberOfClass检查班级成员资格。
标签: ios uiview uibutton uitextfield warnings