在 Microsoft 的 WinObjC UIApplication.mm 文件(位于https://github.com/Microsoft/WinObjC/blob/master/Frameworks/UIKit/UIApplication.mm)中,该init方法适用于UIApplication和WOCDisplayMode。
既不调用类的init方法[super init],也不调用该方法系列中的任何方法,最终导致调用[super init]. 除了对象的初始化之外,我以前从未见过这种情况NSProxy。
我已经复制了在WOCDisplayMode下面撰写本文时的实现以供参考。
-(instancetype) init
{
_fixedWidth = 320.0f;
_fixedHeight = 480.0f;
_fixedAspectRatio = 0.0f;
_magnification = 1.0f;
_autoMagnification = TRUE;
_sizeUIWindowToFit = TRUE;
_operationMode = WOCOperationModePhone;
return self;
}
在我看来,这可能会产生许多问题;例如,如果UIApplication, like的超类之一UIResponder在某个时候覆盖了init自身,并设置了未来方法调用所依赖的内部状态。
为什么实施者可能选择不调用[super init]?这是一个合理的决定吗?它曾经是正确的吗?