Si je souhaite que l'utilisateur puisse modifier les entrées d'une table avec des données numériques, (l'utilisateur cliquera sur une cellule de tableau, puis sur cette vue enfant, entrerait un nombre et retournerait à la vue de la table principale), je pensais que je voudrais simplement ajouter des entrées à un NSMutabaleArray. Si oui, lorsque l'utilisateur quitte l'application, ces valeurs sont-elles toujours présentes? Si c'est le cas, dois-je simplement avoir une méthode de table clear qui libère le tableau? Merci.NSArray, UITableView
0
A
Répondre
2
Les données de votre application ne sont pas conservées automatiquement.
Si vous avez une petite quantité de données, vous pouvez écrire une collection telle qu'un tableau dans un fichier Property List (plist) dans le répertoire Documents de votre application.
Si vous avez une grande quantité de données, je vous recommande d'utiliser des données de base.
0
Le moyen le plus rapide consiste à utiliser un NSKeyedArchiver pour écrire le NSArray dans un fichier. Vous devrez alors lire les données du fichier dans votre NSArray lorsque l'application sera lancée.
Voici un extrait:
Cela devient le chemin du document:
- (NSString*)pathForDataFile
{
//Get the path of the Documents directory
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* documentsDirectory = [paths objectAtIndex: 0]; //Path to the documents directory
//Get the path to my file in /Documents
NSString* documentsPath = [documentsDirectory stringByAppendingPathComponent:
[NSString stringWithFormat: @"%@.plist", @"FileName"]];
return documentsPath;
}
Ces sauveront et la charge:
- (BOOL)saveDataToDisk
{
NSString* path = [self pathForDataFile];
NSMutableDictionary* rootObject = [NSMutableDictionary dictionary];
if (self.yourArray)
[rootObject setValue: self.powerListCollection.items forKey: kYourKey];
[NSKeyedArchiver archiveRootObject: rootObject toFile: path];
return YES;
}
-
- (BOOL)loadDataFromDisk
{
NSString* path = [self pathForDataFile];
NSFileManager* manager = [NSFileManager defaultManager];
if ([manager fileExistsAtPath: path])
{
NSLog(@"Saved data found, loading data from %@", path);
NSMutableDictionary* rootObject = nil;
rootObject = [NSKeyedUnarchiver unarchiveObjectWithFile: path];
NSArray* self.yourArray = [rootObject objectForKey: kYourKey];
}
else
{
NSLog(@"No saved data, initializing objects with default values.");
}
return YES;
}
Notez que vous » ll faut retenir w vous revenez d'objectForKey:
Questions connexes
- 1. NSArray imbriqué dans UITableView
- 2. Différence de 2 NSArray pour l'insertion/suppression animée dans UITableView
- 3. NSArray trier et isoler
- 4. UITableView - Alphabet
- 5. Tri de NSArray et retour de NSArray?
- 6. NSArray ObjectAtIndex: 0 --- get count?
- 7. UITableView Animation Headache
- 8. randomize NSArray
- 9. NSArray libérer
- 10. NSArray Problème
- 11. NSArray triéArrayUsingSelector
- 12. iPhone - NSDictionary à NSArray avec préservé pour
- 13. EXC_BAD_ACCESS NSArray de ManagedObjects (Données de base)
- 14. UITableView redessiner
- 15. NSInvalidArgumentException UITableView
- 16. Problèmes UITableView multi-section
- 17. connect UITableView + UITableView
- 18. ligne Supprimer UITableView problème
- 19. Tri NSArray en utilisant un autre NSArray comme guide
- 20. comment trier un NSArray avec un NSArray imbriqué
- 21. NSArray dans NSArray ne pas retourner l'image que je veux
- 22. Envoyer objet contrôleur UITableView
- 23. Supprimer Gray UITableView Index Bar
- 24. dans plusieurs tableaux pour uitableview
- 25. Filtre NSArray iphone
- 26. Itérer via un NSArray
- 27. Valeur vide dans NSArray
- 28. Problème NSArray/NSDictionary imbriqué
- 29. tri NSArray de NSDates
- 30. données NSArray dans UILabel