L'accès de l'Actif Catalogue pathForResource
Il apparaît que:
[[NSBundle mainBundle] pathForResource:@"name" ofType:@"png"];
Ne retourne rien pour les actifs qui sont à l'intérieur des Images.xcassets actif catalogue. J'ai aussi essayé:
[[NSBundle mainBundle] pathForResource:@"name" ofType:@"png" inDirectory:@"Images"];
[[NSBundle mainBundle] pathForResource:@"name" ofType:@"png" inDirectory:@"Images.xcassets"];
Mais aucun de ceux qui travaillaient.
Quelqu'un a eu le succès de la récupération des chemins d'accès aux ressources dans le catalogue?
- Ayant le même problème!
- J'ai aussi besoin de la les chemins d'accès aux images parce que je ne veux pas utiliser imageNamed (cassé en cache) et il s'avère que l'Actif Catalogues sont également cassés à pas d'un accès programmatique.
- avez-vous jamais trouver une solution à cela?
- Non, et j'ai juste couru dans un autre cas, là où je le voudrais! 🙂
Vous devez vous connecter pour publier un commentaire.
Même problème, mais je ne pense pas que nous pouvions y accéder via
pathForResource:
, à l'exception ci-dessous:Il a été clairement documenté:
J'ai trouvé que dans l'ensemble de respecté application, un fichier nommé "des Biens.voiture" est sorti, et je pense que c'est l'ensemble des images de jeux dans mon projet, et doit avoir été zippé ou quelque chose.
Reportez-vous à la documentation d'Apple:
Donc, c'est ça.
Je suis aussi à la recherche d'un moyen qui n'utilise pas
imageNamed:
, je ne veux pas d'exécution à cache mes images.imgName: le nom de l'ensemble des Images, ne voulant pas le vrai nom de l'image dans l'Image.
Je voulais accéder à certaines ressources vectorielles pour la création de
UNNotificationAttachment
avec les ressources locales, alors je suis venu avec cette classe d'assistance. Essentiellement, il obtient juste image de l'actif, enregistre ses données sur un disque et revenir URL de fichier. J'espère que ça aide quelqu'un.Essayez d'utiliser le nom de l'image tel que déterminé à la Compilation des actifs catalogue" étape. Vous pourrez trouver dans la sortie de la construction. Assurez-vous d'élargir la transcription - vous devriez voir quelque chose comme ceci:
Testé à l'aide de
+[UIImage imageNamed:]
avec Xcode 6.1.1.Bien qu'il existe un Contenu.fichier json (voir ci-dessous) est associée à chaque élément dans xcassets qui contient les noms de fichier de l'élément de l'image, il ne semble pas être accessible au niveau de système de fichiers. Toutes les images sont placées dans un même système de fichiers du dossier lors de la compilation. Le fichier json est généré automatiquement et ne doivent pas être modifiés, mais il fournit un modèle pour une solution de contournement.
Nom de chaque fichier, une image cohérente de suffixe pour correspondre à la correspondante de l'idiome, de l'échelle et du sous-type figurant dans le fichier json. Cela nécessite un travail manuel, sélectionnez "Afficher dans le Finder" option pour chaque actif, et de le renommer chaque fichier, mais une fois terminé, vous pouvez alors utiliser pathForResource en combinaison avec une fonction pour ajouter le suffixe approprié à l'actif de base nom pour récupérer la taille appropriée de l'image.
Exemple de code pour récupérer le chemin d'accès:
Exemple De Contenu.fichier json pour le "Ajouter au Panier" image de l'actif:
Pour le lancement des images et des icônes d'application, en particulier, les chemins de l'image sont disponibles via le UILaunchImages et CFBundleIcons Info.plist clés respectivement. Il semble que ces images sont générés individuellement et de l'Info.plist valeurs mises à jour lors de l'application à construire lors de l'utilisation de l'actif catalogues (et si non, ces clés sont écrites directement par la Xcode, INTERFACE utilisateur). Vous pourriez avoir à écrire du code pour trouver le bon sous-le dictionnaire à utiliser, mais les images sont disponibles séparément et vous pouvez éviter d'utiliser imageNamed dans ce cas.