왜 {get} assign?!
2408 단어 Swift
{ get }
과{ get set }
에 관한 기초 필기다.문제점
최근에 발견된 것은 무엇으로 정의된 속성이 무엇입니까?
그러나 팝을 실천할 때 너무 이성적이라 소홀히 하거나 프로토콜 유형으로 지정하기 전에 프로토콜을 둘러싼 진정한 제한을 만드는 방법을 가져오고 좋고 나쁨을 떠나 적어두기로 했다.
예제
이런 정의.
protocol A: class {
var a: String! { get }
}
class AClass: A {
var a: String!
init() {}
}
assign 값에 사용할 수 있는 실제 작업은 기어오르는 모습입니다.let a1 = AClass()
a1.a = "some text"
편집기는 불평하지 않습니다.runtime도 똑같이 찍었습니다.왜냐하면 a1은
{ get }
성분의 A
이 있지만 컴파일러에게는 AClass
, 프로토콜AClass
의 우선도가 오히려 높기 때문이다.그렇다면 명확하게 나를 지목한 횟수는 프로토콜
A
이다.let a2: A = AClass()
a2.a = "some text"
Xcode는 기대하는 불평입니다.환경
Xcode 11.3.1, Playground
참고
https://docs.swift.org/swift-book/LanguageGuide/Protocols.html의
A
Reference
이 문제에 관하여(왜 {get} assign?!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/vc7/items/657caae679c50a8c89f9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)