Comment accéder à des fichiers locaux au sein du projet
Je tiens à ajouter quelques fichiers statiques (images, binaire, etc...) à mon application. Je les ai placés dans un dossier nommé Resources
et ont ajouté à mon projet XCode.
Ensuite, j'ai ces fichiers ajoutés à la Copy Bundle Resources
dans le Build Phases
onglet dans les paramètres du projet.
Cependant, je n'arrive pas à les mentionner dans le droit chemin.
Par exemple, la lecture d'un fichier binaire:
NSInputStream *is = [[NSInputStream alloc] initWithFileAtPath:@"data.bin"];
if(![is hasBytesAvailable]) NSLog(@"wrong");
Cette échoue toujours & imprimés wrong
J'ai essayé une approche similaire avec NSData initWithContentsOfFile:
mais ce ne serait pas même l'exécuter. Une autre tentative a été d'utiliser [NSBundle mainBundle]
mais cela n'a pas exécuter pleinement.
Je suis nouveau sur iOS s'il vous plaît aider, je peux accéder à mes fichiers locaux! Toute aide serait appréciée.
Merci,
- C'est le cas-il correct ? iOS est sensible à la casse, donc
Data.BIN
etdata.bin
sont deux fichiers différents. - en bas de casse 🙁
Vous devez vous connecter pour publier un commentaire.
Vous devez vous assurer que vous avez accès au fichier dans le bon endroit. Xcode lieux de vos fichiers de ressources dans l'application du "paquet d'application" dans le Ressources répertoire. Il existe de nombreuses façons de creuser 'em out.
Une façon courante est d'obtenir le chemin d'accès d'un fichier dans votre bundle:
Si vous avez d'autres fichiers non standard endroits dans votre bundle, il y a des variations de pathForResource qui permettent à votre spécifier un nom de répertoire.
Si vous voulez voir l'emplacement sur votre disque dur que le simulateur est à l'aide de sorte que vous pouvez inspecter, vous pouvez dire:
De recherche pour le "Bundle Guide de Programmation" dans Xcode bibliothèque de documentation pour commencer. 🙂
pathForResource
j'ai supprimé toutes mes Ressources & de les ajouter de nouveau à partir de zéro. quelle est la meilleure façon d'ajouter des faisceaux? puis-je cliquez-droit sur le projet et neAdd Files to <project.name>?
~/Library/Developer/Xcode/DerrivedData/{random lowercase letters} name}/Build/Products/Debug-iphonesimulator
et regarder à l'intérieur ".app de fichier". C'est votre bundle, et qui doit avoir les fichiers que vous avez demandé à Xcode pour copie.[is open]
après init haha 😉 Merci beaucoup!Utilisation
NSBundle
classe pour que. Par Exemple:En effet, l'appel à [ouvert] est nécessaire, même si vous "initialiseWithFileAtPath". Je pense que l'initialisation serait ouvrir automatiquement le fichier pour vous, mais il ne le fait pas.