У меня смешанное приложение Obj-C - Swift.
Мой заказ Obj-C MapViewController
имеет следующий заголовок файла, в котором Item
является пользовательский класс написанный в Swift:Swift: «Невозможно присвоить значение типа« Item! » набрать «Item!»
@class Item;
@interface MapViewController : UIViewController
@property (nonatomic, strong) Item *item;
@end
переход к MapViewController
начинается с Item
объекта item
использованием
self.performSegueWithIdentifier(kMapSegueId, sender: item)
Это вызывает, когда item
отправляется как sender
:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == kMapSegueId {
let mapViewController = segue.destinationViewController as! MapViewController
mapViewController.item = sender as! Item! // This gives the error
}
}
Однако присвоение свойству item
в MapViewController
дает ошибку компилятора
Невозможно присвоить значение типа "Пункт! для ввода «Item!»
Как я могу избежать этой странной ошибки?
'как!' Уже разворачивает необязательный восклицательный знак после 'Item', не имеет смысла и, скорее всего, проблема. – vadian
@vadian: Я пробовал это раньше, но без восклицательного знака позади Item я получаю сообщение об ошибке «Не могу присвоить значение типа« Item »для ввода« Item! »« –
Имеет ли 'Item' атрибут' @ objc'? –