모든 유형의 값을 받고 문자열로 변환 할 수있는 사용자 정의 컬렉션이 있습니다. 예 :getter의 반환 값과 다른 유형을 허용하는 신속한 subscript setter
collection["key"] = 10
let value = collection["key"] // value is a String
이 방법이 있습니까? 두 하위 스크립트 메소드를 구현하려했지만 Swift는 쓰기 전용 하위 스크립트를 지원하지 않습니다.
subscript(key: String) -> String {
get { ... }
}
// Doesn't compile
subscript(key: String) -> AnyObject {
set { ... }
}
나는 그것을 의심 :
이렇게함으로써,이 같은 일을 할 수 있습니다. [File a bug] (http://bugreport.apple.com) 이것이 중요 할 수도 있지만 더 많은 가능성이 있습니다. 다른 디자인이 필요합니다. 속성에는 다른 setter 및 getter 유형이있을 수 없습니다. – rickster
getter에 다른 유형을 사용할 수없는 이유는 무엇입니까? getter는 값을 사용하여 컨테이너에서 값을 가져 오기 전에 값을 문자열로 변환 할 수 있습니다. 그것을 삽입하는 데 사용 된 키를 사용하여 값을 다시 가져올 수 있다는 것이 훨씬 의미가 있습니다. – drewag
이 작업을 수행하는 기존 Apple API를 래핑합니다. - [objectForKeyedSubscript :] 및 - [setObject : forKeyedSubscript :]에 대한 Obj-C 서명은 사용하는 유형이 서로 다릅니다. – ide