ios - swift新手请教,我在swift中调用self.init,报错了,怎么回事?
伊谢尔伦
伊谢尔伦 2017-04-18 09:47:55
0
2
503

在方法中药调用 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
    
}

}

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

모든 응답(2)
小葫芦

오류 메시지가 아주 명확하지 않나요? Self는 수정할 수 없습니다. - -
부모 클래스의 초기화 함수를 먼저 호출

으아아아
左手右手慢动作

근본 이유:
Swift의 초기화 체인은 OC와 다릅니다. OC는 NSObject에서 균일하게 상속되므로 OC의 super.init가 초기화 상위 클래스입니다.
그러나 Swift는 먼저 자신을 초기화한 다음 상위 클래스에서 상속된 속성을 초기화하기 위해 상속 체인 위로 올라가서 기본 클래스에 도달한 후 아래쪽으로 초기화 작업을 완료합니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!