1

IOS プロジェクトで SDWebImage を使用しようとしています。

私は彼らのgithubからこれらの指示に従っています:

import the project as a static library.

Add the SDWebImage project to your project

Download and unzip the last version of the framework from the download page
Right-click on the project navigator and select "Add Files to "Your Project":
In the dialog, select SDWebImage.framework:
Check the "Copy items into destination group's folder (if needed)" checkbox
Add dependencies

In you application project app’s target settings, find the "Build Phases" section and open the "Link Binary With Libraries" block:
Click the "+" button again and select the "ImageIO.framework", this is needed by the progressive download feature:
Add Linker Flag

Open the "Build Settings" tab, in the "Linking" section, locate the "Other Linker Flags" setting and add the "-ObjC" flag:



Import headers in your source files

In the source files where you need to use the library, import the header file:

#import <SDWebImage/UIImageView+WebCache.h>

しかし、私はこのエラーが発生しています:

SDWebImage is ARC only. Either turn on ARC for the project or use -fobjc-arc

他の回答が言うヘッダー検索パスを検索しようとしましたが、次の結果が得られました。

Always search user paths -No
Header search paths
User header search paths

そこに値を設定する必要がありますか? または、他に何かする必要がありますか?

彼らのデモで気付いたもう 1 つのことは、デモでは、frameworks フォルダーに sdwebimageview の .xcodeproject をインポートし、指示に従って sdwebimageview.framework をインポートしたことです。

ありがとう!

編集: 私のプロジェクトは Arc ではありません。

を変更してみましたother Linker flags from -ObjC to fobjc-arcが、それでも同じエラーが発生します。

1)それは正しかったですか、それとも何か他のものを変更する必要がありますか? 2) プロジェクトを非アークからアークに変更した場合、何を変更すればよいですか? 私はそのライブラリを使用したいだけなので、変更したくありません。

.h ファイル os SDWebImage には次のように書かれています。

#if !__has_feature(objc_arc)
#error SDWebImage is ARC only. Either turn on ARC for the project or use -fobjc-arc flag
#endif
4

1 に答える 1

4

このチュートリアルでは、プロジェクト内のファイルごとに ARC または非 ARC を設定する方法を示します。

いずれにせよ ARC に切り替えたくない場合は、プロジェクトをそのままにして-fobjc-arc、SDWebImage のファイルのオプションを有効にすることをお勧めします。上記のチュートリアルを見てください。その中の画像は、フラグを配置する場所を示しています。(彼らの例では を使用しています-fno-objc-arcが、これは反対のことを行うため、必ず を使用してください-fobjc-arc。同じ場所に入力します。)

于 2012-12-29T21:24:10.880 に答える