为了账号安全,请及时绑定邮箱和手机立即绑定

swift新手请教,我在swift中调用self.init,报错了,怎么回事?

swift新手请教,我在swift中调用self.init,报错了,怎么回事?

慕码人2483693 2018-08-14 10:16:55
在方法中药调用 self = self.init,报错信息是:Cannot assign to value:'self'is immutable代码如下:class Node:NSObject{var parentID:Int?//父节点的id,如果为-1表示该节点为根节点var nodeID:Int?//本节点的idvar name:NSString?//本节点的名称var depth:Int?//本节点的深度var expand:Bool?//该节点是否处于展开状态//快速实例化该对象模型func initWithParentID(parentID:Int,nodeID:Int,name:NSString,depth:Int,expand:Bool) -> Self{        self = self.init        return self    }
查看完整描述

2 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

根本原因:
swift的初始化链条和OC不同,OC统一继承自NSObject,所以OC中super.init是初始化父类。
但是swift是先初始化自己,然后在沿着继承链条向上,初始化继承自父类的属性,到达基类后,然后在向下完成初始化操作。

查看完整回答
反对 回复 2018-08-19
  • 2 回答
  • 0 关注
  • 1506 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信