Подтвердить что ты не робот

Interface Builder - Не удалось загрузить конструктивные элементы из пути (null)

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

Failed to update auto layout status: Failed to load designables from path (null)

или

Failed to render instance of <control>: Failed to load designables from path (null)

Я тестировал элементы управления в другом проекте, и они, похоже, правильно отображаются в построителе интерфейса, но я не могу заставить их работать в текущем проекте. Что вызывает эту ошибку и как я могу ее исправить?

Спасибо заранее...

4b9b3361

Ответ 1

У меня была такая же проблема. Я использую cocoapods, и есть стручок, который использует условные обозначения. Итак, трюк заключался в том, чтобы добавить "use_frameworks!" в Подфайл. сделать обновление "pod update" повторно открыть проект xcode, и сообщение об ошибке не должно появляться.

Ответ 2

Изменить **

Откройте Xcode (но не открывайте проект) и щелкните по окну (второй справа)

Нажмите "Органайзер" и убедитесь, что вы находитесь в "Проекты", а затем удалите все полученные данные. Закройте Xcode, а затем снова откройте проект и позвольте Xcode повторно индексировать ваши файлы и посмотреть, устраняет ли это проблему.

Ответ 3

Я запускаю Xcode 7.3 и получил ошибку, чтобы волшебным образом исчезнуть, выполнив следующие шаги, которые, в конце концов, оставили мой проект в точном состоянии, чтобы он выполнял эти шаги (т.е. ):

  • Добавить 'use_frameworks!' (без апострофов, конечно) к вашему podfile
  • Откройте окно терминала
  • cd в корневой каталог проекта
  • Запустите 'pod install' из командной строки
  • Удалите 'use_frameworks!' из вашего podfile
  • Запустите 'pod install' снова
  • Попробуйте снова построить и посмотреть, исправляет ли это ошибка; он сделал для меня

Похож на один из тех случайных коллажей Xcode, которые мы все видели раньше, особенно когда вы спешите получить что-то еще.

Ответ 4

У меня была такая же проблема в проекте non-CocoaPods с пользовательскими представлениями IBDesignable. По-видимому, это ошибка Xcode. Шаги в этом ответе помогли мне решить проблему. Короче говоря:

  • Закройте Xcode.
  • Убейте все процессы с именем Interface Builder Cocoa Touch Tool на вашем компьютере.
  • Запустите Xcode снова.

Ответ 5

Эта проблема исправлена ​​в последней версии Cocoapods

Чтобы установить, просто запустите:

[sudo] gem install cocoapods --pre

Чтобы исправить ошибку: "не удалось загрузить конструктивные элементы из пути (null)":

use_frameworks!

   pod '****'



end

Добавьте use_frameworks! к вам Подфайл

Найти больше: Живой рендеринг настраиваемого компонента с использованием IB_DESIGNABLE из зависимостей pod

Ответ 6

Проблемы заключались в том, что IB_DESIGNABLE из cocoapods неправильно связаны, когда построитель интерфейсов визуализирует ваши представления.

Тройка use_frameworks! должна это сделать, но для меня это было просто слишком много усилий для переноса кода.

Мой трюк состоял в подклассе каждого представления IB_DESIGNABLE, которое я использовал в раскадровке, которая поступала прямо из контейнеров. Исправлены ошибки.

Ответ 7

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

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

Однако я нашел другое связанное сообщение об ошибке в этом вопросе StackOverflow, которое также было связано с тем, что IB не нашел на пути. Я задавался вопросом, может ли их решение помочь вам:

Решением было добавить $(CONFIGURATION_BUILD_DIR) в целевое поле Build settings Runpath Search Paths.

Ответ 8

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

1) Добавьте это расширение в свой проект:

    extension UIView {
    public func liveDebugLog(message: String) {
        #if !(TARGET_OS_IPHONE)
            let logPath = "/tmp/XcodeLiveRendering.log"
            if !NSFileManager.defaultManager().fileExistsAtPath(logPath) {
                NSFileManager.defaultManager().createFileAtPath(logPath, contents: NSData(), attributes: nil)
            }

            var fileHandle = NSFileHandle(forWritingAtPath: logPath)
            fileHandle.seekToEndOfFile()

            let date = NSDate()
            let bundle = NSBundle(forClass: self.dynamicType)
            let application: AnyObject = bundle.objectForInfoDictionaryKey("CFBundleName")
            let data = "\(date) \(application) \(message)\n".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)
            fileHandle.writeData(data)
        #endif
    }
  }

2) Добавьте liveDebugLog(message:) и поставьте все, что хотите знать. 3) Откройте Terminal.app и запустите команду open /tmp/XcodeLiveRendering.log

Готово!

Кредиты для Мортен Бёг

Ответ 9

Я не использую CocoaPods, но я использую внутреннюю структуру, содержащую элементы IBDesignable, и также испытывал эту проблему. Я очистил, удалил Derived Data из моего основного проекта и перезапустил Xcode, но, похоже, не исправил его. Чтобы решить эту проблему, мне пришлось перейти в Window > Projects, выбрать проект framework (а не проект, который использовал фреймворк, а скорее сам проект фреймворка) и удалить Derived Data. Итак, полные шаги:

  • Меню продуктa > Очистить
  • Удерживайте опцию > Меню продуктa > Очистить папку сборки... > Очистить
  • Меню "Окно" > "Проекты" > "Мой проект" > "Удалить исходные данные"
  • Окно меню > Проекты > Выберите мой основной проект > Удалить производные данные
  • Выйти из Xcode
  • Перезапустить Xcode

Повторите шаг 3 для любых и всех инфраструктурных проектов с IBDesignables и может вызывать ошибки.

Ответ 10

Я решил эту проблему, обновив модуль pod update, надеюсь, что он сработает для вас.

Ответ 11

Эта ошибка появилась, когда я обновил контейнеры, пока xcode и мой проект были открыты.

Я закрыл xcode. снова выполнил обновление модуля. перезапущен xcode.

Ошибка

не появилась снова.

Ответ 12

Я не использовал cocoa-стручки, но получил эту ошибку на контроллере представления, расширяющем импортированные классы. Я получал эту ошибку только при изменении вида StoryBoard на IphoneX, он отлично работал на iPhone 8.

Я изменил настройки проекта с New Build System (Preview) на Standard Build system, затем очистил проект, и ошибка исчезла.

Не знаю почему, но это решило проблему для меня.