我想修改从CNPostalAddress
的{{1}}属性获得的postalAddress
的值。
由于CLPlacemark
具有不可变的属性,因此我想将其转换为CNPostalAddress
。但是,似乎没有一种干净的方法可以做到这一点。我当前的方法是这样:
CNMutablePostalAddress
是否有更好的方法来进行这种转换?
答案 0 :(得分:4)
CNPostalAddress
是扩展NSObject
的类。这意味着您可以访问mutableCopy
。
let contact = ... // some CNPostalAddress instance obtained elsewhere
let newContact = contact.mutableCopy() as! CNMutablePostalAddress
newContact.city = "Here"
无需复制单个属性。
或作为扩展程序的更新:
extension CNPostalAddress {
var mutableAddress: CNMutablePostalAddress {
return mutableCopy() as! CNMutablePostalAddress
}
}
let contact = ... // some CNPostalAddress instance obtained elsewhere
let newContact = contact.mutableAddress
newContact.city = "Here"