Vidéo: TUTORIEL | COMMENT UTILISER L' APPLICATION FICHIERS SUR UN IPHONE | IPAD 2025
Dans les applications iOS, les fichiers sont utilisés comme moyen de stockage et de restauration de l'état d'un jeu actif. Si vous avez effectué une programmation dans n'importe quelle langue (C, C ++, Java, C #, vous l'appelez), vous avez utilisé des fichiers pour lire des données et écrire des données. Objective-C vous permet de travailler avec des fichiers. Les fichiers dans iOS sont organisés en répertoires.
Chaque application obtient son propre répertoire où réside l'application et où ses données peuvent être stockées. Ce répertoire est appelé sandbox de l'application .
Il est interdit à une application d'accéder ou de créer des fichiers en dehors de son sandbox. Lorsqu'une application doit fonctionner avec les contacts ou la musique de l'utilisateur, le système doit (et n'autorise) pas les opérations liées aux fichiers nécessaires pour lire ou modifier ces magasins de données, qui se trouvent en dehors du sandbox de l'application.
Ce répertoire sandbox est organisé en un ensemble de sous-répertoires. Apple spécifie comment chacun de ces sous-répertoires doit être utilisé, comme suit:
-
Le nom de l'application << >>. répertoire de l'application est où l'exécutable de l'application et tous les fichiers de son groupe résident (tels que les images X et O pour Tic-Tac-Toe). Le répertoire Documents contient des données que votre application ne peut pas recréer, telles que des documents ou du contenu générés par l'utilisateur. C'est le répertoire où l'application Tic-Tac-Toe enregistre les jeux, conserve ses fichiers SQLite, etc. iTunes sauvegarde ce répertoire, donc lorsque vous connectez votre appareil à votre Mac, les données ici seront sauvegardées.
-
Le répertoire Boîte de réception dans le répertoire Documents a une signification particulière. Ce répertoire stocke les fichiers que
autres applications -
demandent à votre application d'ouvrir. Par exemple, le programme Mail place les pièces jointes de courrier électronique associées à votre application dans ce répertoire. Votre application peut lire et supprimer des fichiers dans ce répertoire mais ne peut pas créer de nouveaux fichiers ou écrire sur des fichiers existants. Le répertoire Bibliothèque est utilisé pour les fichiers qui ne sont pas des fichiers de données utilisateur mais qui doivent être sauvegardés. À l'exception d'un sous-répertoire nommé Caches (qui est spécifiquement destiné aux données que l'application souhaite temporairement enregistrer pour un accès plus rapide), les fichiers ici sont sauvegardés par iTunes. Le sous-répertoire tmp enregistre les données temporaires qui n'ont pas besoin de rester entre les exécutions de l'application. Votre application doit supprimer les fichiers de ce répertoire lorsqu'ils ne sont plus nécessaires. Le système peut également supprimer les fichiers persistants de ce répertoire lorsque votre application n'est pas en cours d'exécution ou que l'espace disque est insuffisant. Le contenu de ce répertoire est
-
non
-
sauvegardé. Maintenant, regardez un exemple rapide dans Tic-Tac-Toe qui montre comment écrire et lire des fichiers. Dans cet exemple, utilisez un fichier pour enregistrer et restaurer l'état d'une partie. Lorsqu'un utilisateur touche Enregistrer le jeu, l'état actuel du jeu est enregistré dans un fichier nommé SavedGames. des données dans le répertoire Documents du sandbox de l'application (le chemin d'accès à ce fichier a été défini avec #define comme constante TTTGAMESESSIONSAVEDFILEPATH dans le fichier TTTGameSessionViewController.) h).
Si l'utilisateur quitte sans avoir terminé le jeu, il peut revenir à l'écran de la session de jeu et revenir au jeu sauvegardé en sélectionnant Restaurer le jeu.
Maintenant pour du code. Le code suivant montre saveGame:
- (IBAction) saveGame: (id) expéditeur {NSDictionary * savedGameDictionary = [activeGame toDictionary]; Erreur NSError *; NSData * jsonData = [NSJSONSerialization dataWithJSONObject: options savedGameDictionary: erreur NSJSONWritingPrettyPrinted: & erreur]; NSString * savedGameString = [[NSString alloc] initWithData: codage jsonData: NSUTF8StringEncoding]; NSString * savedGamesFilePath = [NSHomeDirectory () stringByAppendingPathComponent: @TTTGAMESESSIONSAVEDFILEPATH]; [savedGameString writeToFile: savedGamesFilePath atomiquement: YES encoding: erreur NSUTF8StringEncoding: NULL];}
L'écriture dans un fichier est facile. Vous venez de créer le chemin d'accès du fichier en utilisant la méthode stringByAppendingPathComponent sur un objet représentant le répertoire de base de l'application (que vous obtenez en appelant la fonction NSHomeDirectory). Puis [savedGameString writeToFile: savedGamesFilePath …] effectue l'écriture réelle.
La lecture d'un fichier est également simple. Voici le code de restoreGame:
- (IBAction) restoreGame: (id) expéditeur {NSString * savedGamesFilePath = [NSHomeDirectory () stringByAppendingPathComponent: @TTTGAMESESSIONSAVEDFILEPATH]; NSString * savedGameString = [NSString stringWithContentsOfFile: encodage savedGamesFilePath: erreur NSUTF8StringEncoding: NULL]; NSError * restoreError = nil; NSMutableDictionary * savedDictionary = [Options NSJSONSerialization JSONObjectWithData: [savedGameString dataUsingEncoding: NSUTF8StringEncoding]: erreur NSJSONReadingMutableContainers: & restoreError]; activeGame = [[TTTGame alloc] initFromDictionary: savedDictionary]; TTTGameGrid * gameGrid = [jeuActif getGameGrid]; if (! [activeGame isActive]) [boardView disableInput]; [boardView setGrid: gameGrid]; [gameView redraw];}
Vous avez déjà vu comment un chemin d'accès au fichier est créé à l'aide de la fonction NSHomeDirectory pour obtenir l'objet du répertoire de base, puis en utilisant la méthode stringByAppendingPathComponent de cet objet pour créer la chaîne. Ensuite, vous lisez le fichier entier dans une chaîne en utilisant [NSString stringWithContentsOfFile: savedGamesFilePath …], puis vous êtes libre de traiter la chaîne si nécessaire.
