gpt4 book ai didi

swift - 为什么我不能快速在 CKRecord 对象上使用下标?

转载 作者:搜寻专家 更新时间:2023-10-31 08:34:18 25 4
gpt4 key购买 nike

这个问题困扰了我一段时间。为什么我需要这样做才能在 CKRecord 上设置对象。

task.record?.setObject(task.reference, forKey:ReferenceField)

而不是这个

task.record?[ReferenceField] = task.reference 

根据我在文档中阅读的内容,CKRecord 应该是下标友好的

最佳答案

该下标只能在 Objective-C 中使用,因为它是使用 objectForKeyedSubscript:setObject:forKeyedSubscript: 实现的。令人高兴的是,很容易扩展 CKRecord 以允许 Swift 下标:

extension CKRecord {
subscript(key: String) -> AnyObject! {
get {
return self.objectForKey(key)
}
set(newValue) {
self.setObject(newValue as CKRecordValue, forKey: key)
}
}
}

NSHipster 有 a post on Objective-C subscripting如果你想了解更多。我很惊讶 Swift 不会自动桥接。

关于swift - 为什么我不能快速在 CKRecord 对象上使用下标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27108714/

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