2015-01-09 4 views
44

스위프트 놀이터에서 놀고있는 동안 (대문자 "S")은 소문자 self과 함께 사용할 수 있습니다. 그들 사이에 어떤 차이가 있습니까? 그렇다면이 두 가지 용도는 무엇입니까? 특히 Self의 용도는 무엇입니까?대문자 "Self"와 소문자 "self"사이의 구별

+1

프로토콜 확장에 self''의 가치와'Self'에 관한 꽤 많은 뉘앙스가있다 - 나는 세부 꽤이로 이동 [이 Q & A에서] (http://stackoverflow.com/q/42037852/2976878). – Hamish

답변

47

Self은 프로토콜 내부의 현재 "물건"유형을 나타냅니다 (프로토콜 준수 여부와 관계 없음). 사용 예는 Protocol func returning Self을 참조하십시오.

Self에 대한 공식 문서는 The Swift Programming Language의 Protocol Associated Type Declaration에 있습니다. 놀랍게도 프로토콜이나 중첩 된 유형의 섹션에는 문서화되어 있지 않습니다.

프로토콜 & 확장 선언 사용자가 다른 자기의
+3

나는 까다 롭고 평온한 하루 보내고 있습니다. 그러나 걱정하지 마십시오! 나는 친구들로부터 멀어져서 시간을내어 말하기를 기술적으로 질문에 완전히 답하기 위해 '자기'는 주로 Objective-C 사람들이 생각하는 것임을 분명히 말해야합니다. 구조체, 열거 형 등의 토론을 통해 불필요한 우회 경로가 될 수 있습니다. – Tommy

+0

아직 자가용 문서를 찾았습니까? – uchuugaka

+0

언어 참조 : "프로토콜 관련 유형 선언"https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Declarations.html –

4

extension protocolName where Self: UIView 
{ 
    func someFunction() 
    { 
    self.layer.shadowColor = UIColor.red.cgColor 
    } 
} 
관련 문제