gpt4 book ai didi

swift - 有没有一种干净的方法可以将 CNPostalAddress 转换为 CNMutablePostalAddress?

转载 作者:行者123 更新时间:2023-11-28 10:06:15 67 4
gpt4 key购买 nike

我想修改 CNPostalAddress 的值,它是从 CLPlacemarkpostalAddress 属性中获得的。

由于 CNPostalAddress 具有不可变属性,我想将其转换为 CNMutablePostalAddress。但是,似乎没有一种干净的方法可以做到这一点。我目前的方法是这样的:

extension CNPostalAddress {
var mutableAddress: CNMutablePostalAddress {
let address = CNMutablePostalAddress()

address.city = city
address.country = country
address.postalCode = postalCode
address.state = state
address.street = street

[...]

return address
}
}

有没有更好的方法来进行这种转换?

最佳答案

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"

关于swift - 有没有一种干净的方法可以将 CNPostalAddress 转换为 CNMutablePostalAddress?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52900814/

67 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com