SDWebImage: setImageWithURL échoue lorsqu'il est utilisé pour définir l'image d'un UITableViewCell
Lors de l'appel setImageWithURL, il ne fonctionne pas avec la suite,
[UIImageView setImageWithURL:placeholderImage:]: unrecognized sélecteur envoyé à l'instance 0x149a20 2011-12-14 18:11:38.060 [781:707]
Résiliation d'application en raison de uncaught exception
'NSInvalidArgumentException', la raison: '-[UIImageView
setImageWithURL:placeholderImage:]: unrecognized sélecteur envoyé à
exemple 0x149a20'
Je peux confirmer que j'ai compris SDWebImage
projet et en-têtes correctement que je peux utiliser le SDWebImageManager avec succès.
Voici le code où j'ai appelé le UIImageView catégorie méthode setImageWithURL
NSURL* url = [NSURL URLWithString:@"www.abc.com/abc.png"];
[cell.imageView setImageWithURL:url placeholderImage:[UIImage imageNamed:@"abc.png"]];
source d'informationauteur Chim
Vous devez vous connecter pour publier un commentaire.
J'ai fini par l'insertion de tous les .h et .m les fichiers dans mon projet et puis il a bien fonctionné. J'ai eu le même message d'erreur quand j'inclus seulement le .un et .h fichiers.
Que par:
la liaison objective-c catégories dans une bibliothèque statique
En raison d'un bug de l'éditeur de liens dans XCode, vous devez définir " l'Autre Linker Drapeaux de la définition de votre cible de génération. Le paramétrage de l'indicateur comme suit devrait éliminer cette erreur.
Cela va résoudre le problème: Ouvrez le "Paramètres de construction onglet" dans le "Linking", repérez la rubrique "Autres Drapeaux de l'éditeur de liens" réglage et d'ajouter "-ObjC" drapeau:
Si quelqu'un, comme moi, a encore des problèmes après avoir vu tous les autres réponses ici (par exemple, force_load ou load_all), même après avoir suivi toutes les instructions d'installation, voici ce que j'ai appris après avoir fait quelques recherches en ligne:
La solution à ce problème:
Faire cela seulement si vous n'avez pas besoin du processeur de 64 bits pour votre application (trop nouveau pour iOS programmation de savoir si cette phrase est valable)
Allez construire paramètres > Architecture
Sous l'Architecture, sélectionnez
Standard architectures (armv7,armv7s)
En vertu de Construire Active Seulement l'Architecture, assurez-vous qu'il est Oui pour les deux
Debug
etRelease
Ma source: https://github.com/rs/SDWebImage/issues/494
J'espère que cela aide ceux qui, comme moi, trouvent cela tout en essayant de résoudre votre problème =)
Dans le SDWebImage docs, il est dit que vous devez définir "d'Autres Drapeaux de l'éditeur de liens"- ObjC. Cela n'a pas fonctionné pour moi. Au lieu de cela, je l'ai mis à all_load. J'ai également eu à enlever-ObjC. L'explication de ce qui se passe peut être trouvé ici:
http://developer.apple.com/library/mac/#qa/qa1490/_index.html
Cela explique aussi pourquoi l'-ObjC échoue: "Important: Pour la version 64 bits de l'iPhone et des applications de l'OS, il y a un éditeur de liens bogue qui empêche l'-ObjC le chargement d'objets les fichiers de bibliothèques statiques qui ne contiennent que des catégories et pas de classes. La solution de contournement consiste à utiliser le f-all_load ou -force_load drapeaux"
Aide -all_load augmente la taille de l'exécutable. Vous pouvez utiliser -force_load pour l'atténuer un peu. Pour SDWebImage 2.7.3, je l'ai fait en définissant les éléments suivants dans la section "Autres Drapeaux de l'éditeur de liens" dans les Paramètres de construction: "-load_all $(SRCROOT)/SDWebImage.cadre/SDWebImage". La liaison à libSDWebImage[ARC].a qui est ce que certaines sources conseiller, ne fonctionne pas pour moi.
Par ailleurs, dans Xcode 4.4, il semble que vous avez à faire à une lente double-cliquez sur pour changer les paramètres de construction de la correctement. Faire un normal double-cliquez sur montre l'complètement foiré et de la non-utilisation de pop-up.
Résolu le même problème en ajoutant la libSDWebImage.un pour les Phases de construction > Lien Binaire avec les Bibliothèques.
Si vous lisez le document ici https://github.com/rs/SDWebImage au fond il y a un télécharger lien avec les bons fichiers à télécharger. Suivant cet exemple, il fonctionne parfaitement.
L'erreur que j'ai faite, et apparemment d'autres, j'ai téléchargé le projet github et essayé d'utiliser.
Tout a commencé à travailler pour moi une fois j'ai fait un lien "ImageIO.cadre" pour mon projet principal.
Vous pouvez également définir des " Autres Linker Drapeaux à all_load. Cela résout le problème où un cadre externe (comme la filepicker cadre) nécessite de se lier à des SDWebImage.
-force_load est pas de résoudre un problème fondamental (quand achiveing problème se produit)
pour résoudre ce problème de liaison..
Assurez-vous que vos fichiers compilés ont UIIMageView+AFNetworking.m dans le cas où vous êtes à l'aide de AFNetworking cadre.
Vous devez ajouter le libSDWebImage.un dans votre lié binaires, également vérifier pour d'autres drapeaux de l'éditeur de liens, il devrait être -ObjC
La caisse de votre choix lorsque vous tirez des fichiers de SDWebimages dans Xcode, faire de, la marque "créer des groupes" dans les dossiers ajouté, et ne marque pas le "créer un dossier de références".
Marque exactement comme sur la photo: