2016-04-05 5 views
0

ここ数ヶ月、UILocalizedIndexedCollat​​ionを使用して、ユーザーNSObjectのコアデータプロパティ "lastName"でUITableViewをソートしました。 各ユーザーのセクションを決定するために、私の現在のコードは次のようになります。SwiftセレクターとUILocalizedIndexedCollat​​ion

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

はしかし、Xcodeの7.3で、私は、コンパイラの警告が出ます:

No method declared with Objective-C selector 'lastName' 

私が最初に考えたのは、新しいセレクタを使用していましたそのように、書式設定:

Selector(User.lastName) 

しかし、これはエラーを生成します。

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

コードはそのまま動作しますが、私は「正しい」方法で警告を取り除きたいと思います。誰にもアイデアはありますか?

答えて

0

セレクタ用Swift 2.2の新しい構文は#selector(your_method_name)です。

コンパイラは、 "lastName"というメソッドがないことを警告します。その外観から、メソッドでなければならないセレクターとしてオブジェクトプロパティを渡そうとしています。

2番目のエラーは、あなたがクラスプロパティにアクセスしようとしているが、クラスは、このような性質を持っていないことを示しています。おそらくのインスタンス変数にアクセスしたいと思うでしょう。

関連する問題