Неизвестная информация о классе в файле 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]()