Неизвестная информация о классе в файле Interface Builder

как в названии у меня сумасшедший массаж, и я не могу с ним справиться

Unknown class info in Interface Builder file.

Каждый раз, когда я запускаю свой проект, появляются сумасшедшие ошибки или некоторые бары исчезают. Кто-нибудь знал, что делать?

Ответ 1

Попробуйте это, чтобы:

  • Продукт- > Очистка в Xcode
  • Удалить приложение из симулятора или устройства
  • Перезапустить Xcode
  • (Build &) Запустить снова

Если это не помогает, вероятно, у вас есть ссылка на класс в nib или раскадровке, который вы должны вручную найти и удалить.

Ответ 2

Предупреждение может быть связано с тем, что вы присвоили удаленное/удаленное имя пользовательского класса для одного из подклассов UIView. Чтобы исправить такие сценарии,

Open interface builder class as Source Code by right clicking on it (Open As -> Source Code).
Find your unknown class name in the source file. And handle accordingly.

Это сработало для меня.

Ответ 3

См. мой ответ на fooobar.com/questions/15512/...

Сегодня я столкнулся с этой проблемой с помощью Swift.

Я изменил класс Model.h + Model.m на Model.swift. Этот объект использовался в Interface Builder с class = Model.

Как только я заменил объект, класс больше не может быть загружен.

Мне нужно было изменить ссылку на класс в IB:

Class = Model
Module = 

to

Class = Model
Module = <TARGETNAME>

Вы найдете <TARGETNAME> в настройках сборки. Это также имя, которое появляется в вашем сгенерированном Swift-заголовке: #import "TARGETNAME-Swift.h"

Ответ 4

Я решил эту проблему (при использовании Swift 4/Xcode 10.1), перейдя на панель Custom Class, отметив "Inherit Module From Target" (прямо под строкой Class & Module).

Ответ 5

Я обычно вижу эти типы ошибок, когда вы меняете имя своего представления и просматриваете классы контроллера после настройки представления или контроллера в Interface Builder для этого класса. Я просмотрел ваши взгляды и контроллеры в вашем nib или раскадровке, чтобы узнать, существуют ли ваши пользовательские классы и соответственно соответствуют.

У вас возникнут проблемы с файлами IB при переименовании или удалении базового кода без обновления файла IB. Аналогичная проблема возникает при удалении или изменении имени IBOutlets после привязки их к объекту в Interface Builder. У вас все еще будет ссылка в Interface Builder, если вы не удалите ее явно.

Наконец, вы можете посмотреть файл IB как текстовый файл. Это XML-документ, в котором вы увидите все ссылки на классы. Вы можете увидеть, есть ли там какие-либо классы, которые могут не существовать в вашем проекте.

Ответ 6

Это также происходит, если вы удалили ClassName.m из фаз сборки/Источники компиляции

Ответ 7

Я повторю проблему с небольшим контекстом с моего конца, а затем предоставляю решение:

Я создал пользовательскую среду Swift и импортировал проект framework в рабочую область. Затем я превратил структуру в целевую зависимость моего приложения Swift. Наконец, я ссылался на класс из фреймворка в построителе интерфейса.

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

Решение:

Просто добавьте заголовок фреймворка в заголовок моста ObjC:

#import <MazKit/MazKit-Swift.h> // In my case, MazKit

Теперь символы экспортируются, и вы можете проверить, что с помощью cmd + щелкните по самому заголовку, и вы увидите имена с искаженным/немыслимым классом.

Ответ 8

Проект → Общие → Информация о развертывании → Основной интерфейс < - очистить это поле.

Кажется, вы удалили файл Main (Storyboard), но у вас все еще есть ссылка на него в свойствах проекта.

Ответ 9

Возможно, файл не был скопирован в процессе сборки. Перейдите на вкладку Build Phases и проверьте ресурсы Bundle копии, чтобы увидеть, есть ли файл там. Если нет, добавьте в проект чистую и пересоберите, чтобы увидеть, решит ли это вашу проблему. Это помогает мне.

Ответ 10

У меня та же проблема с библиотекой Лотти.

Неизвестный класс AnimationView в файле Interface Builder.

Это может произойти, если ваше представление класса находится в другом модуле.

Чтобы решить эту проблему, перейдите в свой файл IB (Xib или раскадровка)/Показать инспектор идентификации и правильно установите модуль:

enter image description here