将 Swift 3.0 的选择器转换为 2.2
Posted
技术标签:
【中文标题】将 Swift 3.0 的选择器转换为 2.2【英文标题】:convert selector of Swift 3.0 to 2.2 【发布时间】:2016-11-29 11:29:11 【问题描述】:let selector: Selector = #selector(getter: UIPrinter.displayName)
我想将此行转换为 swift 2.2
这里是函数的完整代码
func indexFiles()
let selector: Selector = #selector(getter: UIPrinter.displayName)
sections = Array(repeating: [], count: collation.sectionTitles.count)
if let sortedObjects = collation.sortedArrayFromArray(files, collationStringSelector: selector) as? [FBFile]
for object in sortedObjects
let sectionNumber = collation.sectionForObject(object, collationStringSelector: selector)
sections[sectionNumber].append(object)
【问题讨论】:
Referencing getter is Swift 3+ feature。所以它可能需要一些包装。 【参考方案1】:尝试从 UIPrinter 实例 var 中获取选择器。你可以使用
Selector 类的 public init(_ str: String) 初始化器。
let url = NSURL(fileURLWithPath: "file url ")
let printer = UIPrinter(URL:url)
let selector:Selector = Selector(printer.displayName)
【讨论】:
以上是关于将 Swift 3.0 的选择器转换为 2.2的主要内容,如果未能解决你的问题,请参考以下文章