Objective-C构造函数中的必需参数
发布时间:2020-12-16 09:40:27 所属栏目:百科 来源:网络整理
导读:在尝试将我之前基于单例的全局控制器类转换为更多OOP友好依赖注入方法的过程中,该方法在需要时将所需方法从一个对象传递到另一个对象.我遇到了我的上一课在init期间使用全局对象的问题. (id)init { self = [super init]; if (self) { [self setUpPhysicsWith
在尝试将我之前基于单例的全局控制器类转换为更多OOP友好依赖注入方法的过程中,该方法在需要时将所需方法从一个对象传递到另一个对象.我遇到了我的上一课在init期间使用全局对象的问题.
(id)init { self = [super init]; if (self) { [self setUpPhysicsWithWorld:FMPresenter.physics.world]; } return self; } FMPresenter.physics返回单个物理对象的位置.由于我的对象在没有Physics对象的情况下无法正确实例化,因此对init的调用无效.我看到过这个用过: (id) init { NSAssert(NO,@"init not allowed"); [self release]; return nil; } (id) initWithPhysics:(FMPhysics*)physics { self = [super init]; if (self) { [self setUpPhysicsWithWorld:physics.world]; } return self; } 这是在Objective-C中强制构造函数参数的首选方法吗? 解决方法
是的,你的解决方案是正确的,首选方法是创建另一个以init开头的方法,并在调用super之后传递所需的初始化参数并返回self.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |