相关疑难解决方法(0)

如何避免在objective-c中被子类覆盖的超类方法

像在java中一样:

一个最终的类不能被继承.这样做是出于安全和效率的原因.因此,许多Java标准库类都是final类,例如java.lang.System和java.lang.String.最终类中的所有方法都是隐式最终的.

如何在objective-c中实现此行为?

iphone cocoa cocoa-touch objective-c

10
推荐指数
2
解决办法
4338
查看次数

Objective-C:如何避免对具有相同名称的私有超类方法的意外调用?

我试图避免各种重复的代码-(id)init一类,即口味init,initWithFrame,initWithCoder通过定义名为的私有方法,等等commonConstruct.

这个方法对所有init方法风格都很常见,并且由init构造函数调用.

我现在的问题是,在派生类中,对初始化助手("commonConstruct")使用相同的命名对流,基类将调用派生类commonConstruct,尽管它是invisible,即在.m文件中声明,而不是在.h文件中.

但是,运行时会找到重载的commonConstruct并执行它而不是它自己的成员函数.

除了在每个子类中为初始化助手使用不同的名称之外,还有其他方法吗?

换句话说:有没有办法使Objective-C成员函数"非虚拟",即没有迟(运行时)但编译时绑定?

objective-c

5
推荐指数
1
解决办法
228
查看次数

标签 统计

objective-c ×2

cocoa ×1

cocoa-touch ×1

iphone ×1