나는 내 수업의 속성으로 사전을 만들려고합니다.스위프트 : 거울 (반사 : 자기) 너무 느림?
class SomeClass() {
var someString = "Hello, stackoverflow"
var someInt = 42 // The answer to life, the universe and everything
var someBool = true
func objectToDict() -> [String: String] {
var dict = [String: String]()
let reflection = Mirror(reflecting: self)
for child in reflection.children {
if let key = child.label {
dict[key] = child.value as? AnyObject
}
return dict
}
}
그러나 objectToDict()
은 매우 느립니다. 이 속도를 높이는 방법이 있습니까, 아니면 사전에 속성 값을 추가하는 다른 방법 일 수 있습니까?
디버거에서이 값을 읽는 것을 제외하고는 미러링하지 않아야하므로 속도는 중요하지 않습니다. 다른 목적으로 미러링하고 있다면 백업하고 다른 방법으로 구현하십시오. – matt
@matt, 개체를 사전으로 "번역"하는 편리한 방법이 있습니까? 이 jict를 json으로 웹 서비스에 전달해야합니다. 이것이 진정한 목적입니다. – user3352185
이 객체가 NSObject 파생물 인 경우 Objective-C 런타임에 인트로 스펙 션하도록 요청할 수 있습니다. 순수 스위프트에는 편리한 방법이 없습니다. 개인적으로 나는 한 번에 하나의 속성으로 손으로 변환을 작성합니다. – matt