2010-10-25 3 views
0

Je pars pour faire un jeu de tower defense, et j'aurai environ 40-50 tours et environ 20 ennemis à l'écran. Ces objets auront chacun quelques propriétés, comme hp, damage, speed, etc.iOS defaults db

Quelle est la limite des valeurs par défaut db? Je n'ai pas envie d'écrire des requêtes SQL pour simplement enregistrer l'état de mon jeu.

Répondre

2

NSUserDefaults fournit un moyen de stocker des informations de base. La seule chose est que les classes que vous avez l'intention de stocker doivent être conformes à NSCoding et encapsulées dans NSData. Cela est dû au fait que NSUserDefaults requiert que son contenu soit 100% compatible avec PLIST (NSDictionary, NSArray, NSData, NSString, NSNumber, NSValue ...).

Brad est correct, cependant: le plus facile (et la meilleure pratique) pour le vider dans un fichier de données.

+0

Des didacticiels pour décharger ce type de données dans des fichiers s'il vous plaît? Serais-je seulement en mesure de vider le NSMutableArray ou peut-être l'ensemble de Cocos2d GameScene dont je veux enregistrer l'état? Ce serait génial. –

+0

Deuxième verset identique au premier: En savoir plus sur les archives et les sérialisations dans Cocoa: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Archiving/ –

0

Il pourrait être plus facile avec quelque chose comme ça de prendre les données et de les lire/écrire dans un fichier - plutôt que de faire quelque chose comme les défauts. Vous pouvez fondamentalement avoir une structure de données statique que vous convertissez en un NSData avec - et l'écrire sur le stockage avec les attributs createFileAtPath: contents: de NSFileManager: dans un seul whack!

+0

Est-ce que cela veut dire que je pouvais prendre tout mon NSMutableArray et enregistrer que dans un fichier sans respecter NSCoding, puis de lire le fichier retour dans un NSMutableArray? Cela semble un peu trop beau pour être vrai. –

+0

Non - vous devez implémenter NSCoding - ou itérer dans le tableau et vider chaque objet. – Brad

2

Bien sûr - vous pouvez utiliser NSUserDefaults pour stocker autant d'informations que vous le souhaitez. Vous pouvez également vous intéresser aux données de base (cela pourrait bien s'améliorer dans le futur).