Intereting Posts
UIPinchGestureRecognizer, как использовать его правильно? Как заставить текстовое поле начать редактирование? Обнаружение слова в изображении абзаца при касании iTunes – надежно определить, на что указывает ссылка (приложения, музыка и т. д.). Почему приложение Phonegap закрывает строку состояния моего мобильного устройства? Как правильно добавить эти три файла? »Default.png, Default-568h@2x.png, Default@2x.png« для универсального приложения для iPhone / iPad? Асинхронное ожидание завершилось неудачно: для случая с блоком тестирования Добавление индикатора раскрытия для отображения контактов iOS 5 Ошибка интеграции с приводом Google в ios6 и Xcode 4.5 UIAlertViewController не отвечает после медленной анимации в симуляторе получить изображение в формате yur planar с камеры – iOS Как проверить время загрузки моего приложения? Эффективный способ сжатия NSDictionary в NSData Как рассчитать высоту tableviewcell с правым / левым стилем? как узнать, что представляет собой текущий UIView / UIController после приложения iPhone, возвращенного на передний план?

Ошибка: «Невозможно присвоить значение типа String: UIColor? к значению типа String: AnyObject! "

Мой код отлично работал в Swift 1.2, но в Swift 2 я получаю эту ошибку:

Невозможно присвоить значение типа String: UIColor? к значению типа String: AnyObject!

Мой код:

override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { let cell = super.collectionView(collectionView, cellForItemAtIndexPath: indexPath) as! JSQMessagesCollectionViewCell let message = messages[indexPath.row] if message.senderId == self.senderId { cell.textView!.textColor = UIColor.blackColor() } else { cell.textView!.textColor = UIColor.whiteColor() } // Error in the following line cell.textView!.linkTextAttributes = [NSForegroundColorAttributeName:cell.textView!.textColor] return cell } 

Вы должны добавить ! после textColor :

 cell.textView!.linkTextAttributes = [NSForegroundColorAttributeName:cell.textView!.textColor!] 

Причина того, что linkTextAttributes имеет тип [String : AnyObject!] А словарь, который вы хотите назначить, имеет тип [String : UIColor?] . Несоответствие между UIColor и AnyObject потому что UIColor можно передать в AnyObject . Проблема в том, что UIColor? вы предоставляете не обязательно. И вы не можете неявно использовать опциональный UIColor? к необязательному AnyObject! , Поэтому вам нужно принудительно развернуть цвет, чтобы получить UIColor из UIColor? добавив ! ,

Попробуйте с этим

 textView!.linkTextAttributes = [NSForegroundColorAttributeName:textView!.textColor as AnyObject!]