2017-08-26 22 views
0

の配列とcollat​​ionStringSelectorは:)私はそうのような構造体の配列があるとします。:構造体

struct Record { 
    let name: String 
} 

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

私はUILocalizedIndexedCollat​​ion.sectionを使用して、各要素のインデックスを取得したいと思います(のために:collat​​ionStringSelector :)

#selector(getter: record.name) 

次のエラーが返されます:問題は、私は合格したときに、ある '#selector' の

引数が のObjective-CにさらされていないVAR '名前' を意味し

構造体のインスタンス値を#selectorに公開する方法はありますか? (NB:私が渡している構造体は、私のアプリケーション全体に広範囲にわたって使われており、実際にはクラスに変更したくありません)

+0

ここで、構造体のインスタンス値を#selector?_ ** NO **に公開する方法はありません。 'Selector'はSwift構造体では動作しません。 'UILocalizedIndexedCollat​​ion'を使うには、ラッパークラスが必要かもしれません。 – OOPer

答えて

0

構造体変数をNSStringに変換し、NSStringのメソッド/その問題を修正したもの:

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