2012-06-14 2 views
7

Я пытаюсь использовать SDWebImage в своем приложении для iPhone. Я выполнил шаг за шагом, чтобы установить SDWebImage в мой проект Xcode.Файл SDWebImage/UIImageView + WebCache.h не найден

Когда я пытаюсь построить мое приложение я получаю следующее сообщение об ошибке:

Lexical or Preprocessor Issue 
'SDWebImage/UIImageView+WebCache.h' file not found 

Может кто-нибудь помочь мне решить эту проблему?

ответ

2

Проверьте, правильно ли вы связали файл и его связали в своем списке.

+0

Я Добавлено Target Depencencies и Link Binary с библиотеками, как показано в установке руководства. Но все равно получение этой ошибки – Lizard

+0

http://stackoverflow.com/questions/10027586/lexical-or-preprocessor-issue-myviewcontroller-h-file-not-found –

+8

Решено путем добавления $ (SRCROOT)/SDWebImage к пути поиска заголовка – Lizard

3

Ответ @Lizard спас мой день!

$(SRCROOT)/SDWebImage to Header Search Path

Чтобы быть более конкретным, вы должны добавить эту конфигурацию в свою цель, а не в проектный вид.

+0

Я добавил в проект, так что это не имеет никакого значения. Однако мне пришлось использовать другой путь «$ (SRCROOT) /../ SDWebImage», так как у меня нет SDWebImage внутри папки проекта, но один выше (тот же уровень, что и проект). – JOM

+0

@JOM это работало для вас? – rodchile

+0

Уверенный, счастливый пользователь сейчас :) – JOM

16

Гораздо чище «установить» из SDWebImage будет выглядеть следующим образом:

  1. Drag SDWebImage папку из Finder в проект вашего Xcode в
  2. На любой файл .m, где вы хотите использовать его добавить: #import "UIImageView+WebCache.h"

    (и любой другой компонент SD требуется)

    вместо того, что вы, вероятно, сделал: #import <SDWebImage/UIImageView+WebCache.h>

Это не требует манипулирования заголовком проекта и будет работать как есть.

+0

Отличный совет;) – bruno

+0

Это, похоже, сработало для меня, спасибо! –

+0

безупречный! решил вопрос :) –

1

У меня также была проблема. Решение для меня состояло в том, чтобы добавить SDWebImage.framework вместо добавления всех файлов в мой проект. Вот список проверок, чтобы убедиться, что все настроено, как было предложено автором here.

Скачать и добавить рамки

Шаг 1: Скачать и распаковать самую последнюю версию здесь: https://github.com/rs/SDWebImage/wiki/Download-Complied-Framework

Шаг 2: Щелкните правой кнопкой мыши на навигаторе проекта и выберите «Добавить файлы в» Ваш проект ": В диалоговом окне выберите SDWebImage.framework и установите флажок« Скопировать элементы в папку целевой группы (если необходимо) ».

Добавить зависимости

В настройках целевого проецирования приложения приложения, найдите раздел «Build Phases» и открыть «Ссылку Двоичных с библиотеками» блок: снова нажмите на кнопку «+» и выберите «ImageIO.рамки»

Добавить Linker Flag

Откройте "Построить Настройки" на вкладке, в "Linking" раздел, найдите раздел "Другие флаги компоновщика" настройки и добавить "-ObjC" флаг:

Импорт заголовков в ваших исходных файлов

#import <SDWebImage/UIImageView+WebCache.h> 

Она должна строиться теперь без каких-либо проблем.

2

Использование

#import "UIImageView+WebCache.h" 

вместо

#import <SDWebImage/UIImageView+WebCache.h> 

будет решить.

10

Может случиться так, что:

Разархивирования этих рамок, имя каталога может быть следующим: «SDWebImage-3.3.framework»

Если импортировать проект таким образом, приводит к ошибке «рамочное SDWebImage не найден "при компиляции.

Вам необходимо переименовать, удалив «-3.3». Было бы: «SDWebImage.framework»

Принудительное переименование из Xcode вызывает ошибку, которая неожиданно закрывает IDE. Переименовывает из Finder и снова добавляет фреймворк.

Я надеюсь, что это полезно ...

5

Я не хочу, чтобы мой злейший враг разочарование, я должен был пройти, чтобы решить эту проблему, потому что ни одно из этих решений не помогло в моем конкретном случае. Если ваш проект был скомпилирован ранее, вы вернулись к нему, и эта ошибка вышла из ниоткуда, скорее всего, вы переместили его в какой-либо новый каталог - так что перейдите в «Настройки сборки»> «Пути поиска»> в пути «Пути поиска» удалите устаревший путь, создайте новый и установите его в «$ (SRCROOT)» (без кавычек) и измените значение по умолчанию «нерекурсивное» на «рекурсивное». Надеюсь, это избавит меня от страданий, которые я пережил.

1

Использование #import <SDWebImage/UIImageView+WebCache.h> исправил проблему для меня, поскольку я использовал Cocoapods в качестве фреймворков (use_frameworks!).

+0

спасибо, это сработало для меня. – prasad

1

Я имел .xcodeproj и .xcworkspace файлов и запустил код, используя .xcodeproj и получил эту ошибку, но с .xcworkspace он работал отлично