加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读