gpt4 book ai didi

objective-c - 如何修改 CNLabeledValue 的值,保持标识符不变

转载 作者:太空狗 更新时间:2023-10-30 03:45:28 24 4
gpt4 key购买 nike

新的“联系人”框架引入了 CNLabeledValue 类。此类用于管理标签值对。但是 CNLabeledValue 有第三个属性:标识符。

在文档中我们可以读到:建议您在重新获取的联系人中搜索以前已知的标记值对象时使用该标识符。该标识符可以在应用程序启动之间保留。

因此,如果用户在联系人应用程序中更改标签或值或两者都没有关系,因为我们可以使用标识符来标识 CNLabeledValue。 Contacts App 修改 CNLabeledValue,保持标识符不变。

我尝试做同样的事情,但如何修改现有获取的 CNLabeledValue 的值,同时保持标识符不变?例如,我想更改“工作”电话号码。我收到了当前“工作”电话号码的 CNLabeledValue,现在怎么办?

对于 CNContact,我创建了一个 mutableCopy

    CNMutableContact *mutableContact = [fetchedContact mutableCopy];

mutableContact 可以修改,它与获取的联系人保持相同的联系人标识符。

CNLabeledValue 是一个不可变的值对象,它没有可变版本。我在创建新的 CNLabeledValue 时也无法提供标识符。

用另一个标识符替换 CNLabeledValue 是不公平的,因为我的应用程序可能不是唯一一个从联系人中获取的应用程序......我不会欣赏另一个应用程序修改 CNLabeledValue 标识符......

有什么想法吗?

最佳答案

刚刚做了一些非常快速的研究,看起来你想要使用的是:

- (instancetype)labeledValueBySettingLabel:(NSString *)label value:(ValueType)value

https://developer.apple.com/library/watchos/documentation/Contacts/Reference/CNLabeledValue_Class/index.html#//apple_ref/occ/instm/CNLabeledValue/labeledValueBySettingLabel:value :

来自文档:返回带有指定标签的带标签的值对象和带有现有标识符的值。

关于objective-c - 如何修改 CNLabeledValue 的值,保持标识符不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33161194/

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