假设我有一个像这样的结构数组:
struct Record {
let name: String
}
let array = [Record(name: "John"), Record(name: "Jim"), Record(name: "Bob")]
我想使用UILocalizedIndexedCollation.section(for:collationStringSelector :)获取每个元素的索引。问题是,当我通过时:
#selector(getter: record.name)
返回以下错误:
' #selector'的争论是指var' name'没有暴露的 目标C
有没有办法将结构中的实例值暴露给#selector? (注意:我传递的结构在我的应用程序中被广泛使用,我并不想将它改为一个类)
答案 0 :(得分:1)
将struct变量转换为NSString并使用NSString的方法/变量之一解决了这个问题:
let index = UILocalizedIndexedCollation.current().section(for: (record.name as NSString), collationStringSelector: #selector(getter: NSString.uppercased))