在方法中药调用 self = self.init,报错信息是:Cannot assign to value:'self'is immutable
代码如下:
class Node:NSObject{
var parentID:Int?//父节点的id,如果为-1表示该节点为根节点
var nodeID:Int?//本节点的id
var 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
}
}
Bukankah mesej ralat agak jelas? Diri tidak boleh diubah suai - -
Panggil fungsi permulaan kelas induk dahulu
Sebab akar:
Rantaian permulaan Swift berbeza daripada OC yang diwarisi secara seragam daripada NSObject, jadi super.init dalam OC ialah kelas induk permulaan.
Tetapi swift memulakan dirinya sendiri terlebih dahulu, dan kemudian naik ke rantai warisan untuk memulakan sifat yang diwarisi daripada kelas induk Selepas mencapai kelas asas, ia kemudian melengkapkan operasi pemula ke bawah.