使用UILocalizedIndexedCollat​​ion.section(for:collat​​ionStringSelector :)和结构数组

时间:2017-08-26 06:27:38

标签: arrays swift struct

假设我有一个像这样的结构数组:

struct Record {
    let name: String
}

let array = [Record(name: "John"), Record(name: "Jim"), Record(name: "Bob")]

我想使用UILocalizedIndexedCollat​​ion.section(for:collat​​ionStringSelector :)获取每个元素的索引。问题是,当我通过时:

#selector(getter: record.name)

返回以下错误:

  

' #selector'的争论是指var' name'没有暴露的   目标C

有没有办法将结构中的实例值暴露给#selector? (注意:我传递的结构在我的应用程序中被广泛使用,我并不想将它改为一个类)

1 个答案:

答案 0 :(得分:1)

将struct变量转换为NSString并使用NSString的方法/变量之一解决了这个问题:

let index = UILocalizedIndexedCollation.current().section(for: (record.name as NSString), collationStringSelector: #selector(getter: NSString.uppercased))