首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一种将CNPostalAddress转换为CNMutablePostalAddress的干净方法?

是否有一种将CNPostalAddress转换为CNMutablePostalAddress的干净方法?
EN

Stack Overflow用户
提问于 2018-10-19 22:49:19
回答 1查看 875关注 0票数 0

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

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

代码语言:javascript
复制
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
    }
}

有更好的方法来完成这个转换吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-20 00:02:55

CNPostalAddress是一个扩展NSObject的类。这意味着您可以访问mutableCopy

代码语言:javascript
复制
let contact = ... // some CNPostalAddress instance obtained elsewhere
let newContact = contact.mutableCopy() as! CNMutablePostalAddress
newContact.city = "Here"

不需要复制单个属性。

或者作为对您的分机的更新:

代码语言:javascript
复制
extension CNPostalAddress {
    var mutableAddress: CNMutablePostalAddress {
        return mutableCopy() as! CNMutablePostalAddress
    }
}

let contact = ... // some CNPostalAddress instance obtained elsewhere
let newContact = contact.mutableAddress
newContact.city = "Here"
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52900814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档