Erreur lors du chargement de pngs à partir d'un .bundle dans Objective-c

Je construis un cadre dans mon projet Xcode. Pour créer le cadre, j'ai créé une cible globale. Le cadre se compose de la bibliothèque statique, des files d'en-tête et du regroupement d'éléments .png, MyFrameworkResources.bundle . Lorsque je crée l'agrégat, tout est créé avec succès et le regroupement existe dans mon directory Produits.

Aussi dans mon projet Xcode est une application cible. Cette application permet de tester les produits du framework (bibliothèque statique, files d'en-tête et bundle). J'ai ajouté la bibliothèque statique et MyFrameworkResources.bundle aux dependencies cibles de l'application cible. J'ai également ajouté MyFrameworkResources.bundle à Copy Bundle Resources dans Build Phases de l'application cible.

Je peux très bien utiliser tous les files de la bibliothèque statique, mais une erreur se produit lorsque j'essaie de charger des ressources à partir de l'set. Voici comment je charge les éléments du bundle:

 NSSsortingng *mainBundlePath = [[NSBundle mainBundle] resourcePath]; NSSsortingng *frameworkBundlePath = [mainBundlePath ssortingngByAppendingPathComponent:@"MyFrameworkResources.bundle"]; NSBundle *frameworkBundle = [NSBundle bundleWithPath:frameworkBundlePath]; NSLog(@"bundle: %@", frameworkBundle); NSError *error; [frameworkBundle loadAndReturnError:&error]; // <-- THIS RETURNS AN ERROR NSLog(@"error: %@", error); UIImage *image = [UIImage imageWithContentsOfFile:[frameworkBundle pathForResource:@"AnyImage" ofType:@"tiff"]]; // <-- EDIT, USE "tiff", NOT "png" 

Lorsque je connecte le bundle, je reçois ceci:

bundle: NSBundle / Utilisateurs / my_comp / Bibliothèque / Application Support / iPhone Simulator / 6.1 / Applications / blah-blah-blah / MyApp.app / MyFrameworkResources.bundle (pas encore chargé)

Lorsque je connecte l'erreur, j'obtiens ceci:

error: Error Domain = NSCocoaErrorDomain Code = 4 "Le package" MyFrameworkResources "n'a pas pu être chargé car son exécutable n'a pas pu être localisé." UserInfo = 0x7535ee0 {NSLocalizedRecoverySuggestion = Essayez de réinstaller le package., NSLocalizedFailureReason = Impossible de localiser l'exécutable du package., NSLocalizedDescription = Le package "MyFrameworkResources" n'a pas pu être chargé car son exécutable n'a pas pu être localisé., NSBundlePath = / Users / my_comp / Bibliothèque / Application Support / Simulateur iPhone / 6.1 / Applications / blah-blah-blah / MyApp.app / MyFrameworkResources.bundle}

Donc, pour revérifier, j'ai cd'd dans /Users/my_comp/Library/Application Support/iPhone Simulator/6.1/Applications/blah-blah-blah/MyApp.app/ sur mon ordinateur, et le MyFrameworkResources.bundle était réellement là. Alors maintenant je suis à perte. J'ai essayé de nettoyer la cible agrégée, en nettoyant l'application cible, en supprimant l'application cible, et sans succès.

Une idée de pourquoi je ne peux pas charger des images à partir du bundle? (désolé pour la longue description)

Fyi, j'ai utilisé ce super tutoriel comme guide pour build le framework et le bundle.

Ah après avoir lutté un peu plus sur ce sujet, je suis entré dans MyFrameworkResources.bundle juste pour vérifier que tous les assets étaient inclus. Il s'avère que Xcode a renommé les files .png en files .tiff et supprimé les actifs rétine. Après une enquête plus approfondie, j'ai découvert que Xcode combine automatiquement les files rétine et non-retina .png dans un "TIFF multi-page" . Voici une reference .

Solution, utilisation de ofType:@"tiff" au lieu de ofType:@"png" :

 UIImage *image = [UIImage imageWithContentsOfFile:[frameworkBundle pathForResource:@"AnyImage" ofType:@"tiff"]];