2016-04-05 14 views
0

Son birkaç ay için, bir UITableView öğesinin bir Kullanıcı NSObject öğesinde "lastName" çekirdek veri özelliğine göre sıralamak için UILocalizedIndexedCollation kullanıyorum. her kullanıcı için bölüm belirlemek için My geçerli kod şöyle görünür:UILocalizedIndexedCollation ile Swift Selektörler

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

Ancak Xcode 7.3 içinde, bir derleyici uyarı alıyorum:

No method declared with Objective-C selector 'lastName' 

ilk düşüncem yeni Selector'ü kullanmaktı biçimlendirme, şöyle:

:

Selector(User.lastName) 

Ama bu bir hata üretir

Bu kod gayet iyi çalışıyor, ancak uyarıyı 'doğru' şekilde silmek istiyorum. Herhangi bir fikri olan var mı?

cevap

0

Seçiciler için Swift 2.2'deki yeni sözdizimi #selector (your_method_name) 'dir.

Sizin durumunuzda derleyici, "lastName" adında bir yönteminiz olmadığını bildirir. Görünüşe göre bir nesne özelliğini, bir yöntem olması gereken bir seçici olarak aktarmaya çalışıyorsunuz.

ikinci hata, bir sınıf özelliğine erişmeye çalışan ancak sınıf böyle bir özelliği yok olduğunu söyler. Muhtemelen bir örneği değişkenine erişmek istersiniz.