在过去的几个月中,我一直在使用UILocalizedIndexedCollat​​ion通过User NSObject上的核心数据属性“ lastName”对UITableView进行排序。
我当前为每个用户确定部分的代码如下所示:

addUserObject.section = self.collation.sectionForObject(user, collationStringSelector: Selector("lastName"))


但是,在Xcode 7.3中,我收到了编译器警告:

No method declared with Objective-C selector 'lastName'


我首先想到的是使用新的Selector格式,如下所示:

Selector(User.lastName)


但这会产生一个错误:

Instance member 'lastName' cannot be used on type 'User'


该代码按原样工作正常,但我想以“正确”的方式摆脱警告。有人有什么想法吗?

最佳答案

Swift 2.2中用于选择器的新语法是#selector(your_method_name)。

在您的情况下,编译器会警告您您没有名为“ lastName”的方法。从外观上,您试图将对象属性作为必须作为方法的选择器进行传递。

第二个错误告诉您您正在尝试访问类属性,但是该类没有这样的属性。您可能要访问一个实例变量。

关于ios - 带有UILocalizedIndexedCollat​​ion的Swift选择器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36431856/

10-13 03:49