4

Когда я использую какой-то пользовательский интерфейс в интерфейсе Builder из модуля/фреймворка, все работает отлично. Но если я напишу расширение для этого класса в своем проекте и установил собственный класс (в Interface Builder), Interface Builder установит модуль пользовательского класса - это мой проект. И когда я пытаюсь использовать этот пользовательский класс в коде, Xcode говорят:Неправильный модуль для пользовательского класса в Interface Builder

"Unknown class _TtC9*modulename*18*MyCustomLabel* in Interface Builder file." 

Пример:

  • TTTAttributedLabel добавлен новый проект в качестве отдельного модуля (или бросить cocoapods).
  • Добавить простую UILabel в раскадровку и установить пользовательский класс как TTTAttributedLabel
  • Добавить выход для кодирования и печати (NSLog) этой метки.

Xcode напишите, что это TTTAttributedLabel.

  • добавить пустое расширение для TTTAttributedLabel
extension TTTAttributedLabel{ } 
  • удалить и снова установить пользовательский класс для метки в Interface Builder;
  • печать (NSLog) этикетка;

И отправьте предупреждающее сообщение Xcode и сообщите, что наш ярлык - UILabel.

Это ошибка конструктора интерфейса или, может быть, я должен написать что-то перед расширением для модулей?

Информация: быстры, xcode6.3-7.3

ответ

2

Я вижу ту же проблему, я, кажется, нашли обходной путь, хотя.

Во избежание этой ошибки вы должны указать полное имя класса, включая имя модуля, при создании расширения. Так оно и делается:

extension TTTAttributedLabel. TTTAttributedLabel { } 

 Смежные вопросы

  • Нет связанных вопросов^_^