6

I need to manage photos in my app and have read much about SDWebImage framework which seems to be the best way to go. However I am finding it incredibly difficult to install. I dont know Ruby and have never used a podfile, so am installing it by downloading the latest SDWebImagefolder & framework and adding them to my project. However when I try to import into my viewcontroller using the suggested imports:

#import <SDWebImage/UIImageView+WebCache.h>
#import "UIImageView+WebCache.h"

I get a file not found with on the #import then if I change this to "SDWebImage/UIImageView+WebCache.h" as suggested I get a file not found on the: #import UIImageView+WebCache.h even though I can clearly see it when I open the SDWebImage folder in my project! I'm guessing that these errors also lead to a not found error when I try to use the sd_setImageWithUrl method.

Here's a screen shot of my project:

enter image description here

I hope I can get some help with this as the framework looks to have very good functionality. Any help very much appreciated. Thanks

Kitcc
  • 2,138
  • 4
  • 24
  • 42
  • can you tell us all the steps you followed in order to add sdwebimage? – NSPunk Aug 31 '15 at 04:08
  • I think this is kinda similar to this: http://stackoverflow.com/q/32292187/849616 or at least the answers are. – Nat Aug 31 '15 at 07:21

4 Answers4

4

When you add the SDWebImage folder in your project then select following option. To add copy of your folder to the destination project and Create groups.

and then you have to write just like

#import "UIImageView+WebCache.h"

And make sure that you are adding to all the targets that you want to use that library.

enter image description here

Documentation at Github :

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

Or you can use cocoa pods as other answer suggested.

EDIT : EXAMPLE :

[self.imageView sd_setImageWithURL:[NSURL URLWithString:"yoururl.png"] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
Ashish Kakkad
  • 23,586
  • 12
  • 103
  • 136
  • Thanks IAshish that has solved the import, however I still get the "no visable @interface for'UIImage' declares the selector 'sd_setImageWithURL placeholder image" error on my sd_setImageWithUrl line ........... [photoImageView.image sd_setImageWithURL:url placeholderImage: [UIImage imageNamed:@"placeholder1"]]; – Kitcc Aug 31 '15 at 04:26
  • try `photoImageView sd_setImageWithURL` not the `photoImageView.imgae` !! @Kitcc – Ashish Kakkad Aug 31 '15 at 04:29
2

You can use CocoaPods to manage libraries in your project.

To add SDWebImage to your project you should add this line to your pod file:

pod 'SDWebImage', '~>3.7'

UPD

To use CocoaPods, you should install it, to create it you can open Terminal and copy/paste this line:

  sudo gem install cocoapods

On next step you should create Podfile in directory that contain your project file. Pods it is text file (you can create it by using xCode or other text editor (only do not use Writer, it uses not correct character for " ' ")).

After you've created Podfile, you should run in Terminal next line:

pod update

It command'll create a workspace file, this file you'll use to open your project. All instructions present on the home page of CocoaPods.

Andrew Romanov
  • 4,774
  • 3
  • 25
  • 40
  • Could you let me know how to open my pod file and add this line? I did download a starting Cocoapods tutorial but that was full of Ruby and I wasn;t able to understand what was required at all. – Kitcc Aug 31 '15 at 04:29
  • @Kitcc The same explanation but with more details: http://stackoverflow.com/a/32295123/849616 – Nat Aug 31 '15 at 07:22
  • I already have pod file for AFNetworking so do I need to create separate POD file for SDWebImage or I can write --------------pod 'SDWebImage', '~>3.7'----------------------in the existing pod file? – Developer Jun 28 '16 at 08:36
  • You should use one Pod file per one project (See CocoaPods home page, tab Get Started). – Andrew Romanov Jun 29 '16 at 04:09
0

I ran into this issue recently, and a less intrusive way to fix this problem is to add an entry to your Header Search Paths (all 3 instances) with the content ./SDWebImage/ (assuming that's where the framework is) so that it considers that folder when looking for includes.

Pablo D.
  • 620
  • 6
  • 15
-1
  • I think you have to use a Cocoa Pod file for SDWebImage Library.
  • init the pod file.
  • install Pod file.
  • and then update that pod file.

platform :ios, '7.0'

source 'https://github.com/CocoaPods/Specs.git'

pod 'SDWebImage','3.7.1'

pod 'UIActivityIndicator-for-SDWebImage'

And then you can import the following file.

#import "UIImageView+UIActivityIndicatorForSDWebImage.h"
Jagat Dave
  • 1,643
  • 3
  • 23
  • 30
  • I wish you had actually added instructions instead of high-level directives, for those of us who don't have a background in Cocoapods. These instructions are not helpful. – software evolved Apr 11 '18 at 19:26