我想用一個類的屬性來製作字典。斯威夫特:鏡子(反映:自我)太慢了?
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,有沒有方便的方法可以將對象「翻譯」爲一個字典?我需要將此詞典作爲json傳遞給Web服務,這纔是真正的目的。 – user3352185
如果這個對象是一個NSObject派生物,你可以讓Objective-C運行時爲你反思。純Swift中沒有任何方便的方法。就我個人而言,我只是一次隻手寫一個屬性的轉換。 – matt