(void) loadDataFromDisk
{
NSMutableData *data = [[NSMutableData alloc] initWithContentsOfFile:[self pathToDataFile]];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
_cells = [[unarchiver decodeObjectForKey:@"Board"] retain];
[unarchiver release];
[data release];
}
(void) saveDataToDisk
{
NSMutableData *data = [NSMutableData alloc];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:_cells forKey:@"Board"];
[archiver finishEncoding];
[data writeToFile:[self pathToDataFile] atomically:YES];
//[array release];
[data release];
//NSMutableData
}
(BOOL)gameDataExists
{
return [[NSFileManager defaultManager] fileExistsAtPath:[self pathToDataFile]];
}
(NSString *)pathToDataFile
{
NSString *path = [[NSBundle mainBundle] bundlePath];
return [path stringByAppendingPathComponent: GAME_DAT];
}
le code ci-dessus a travaillé sur simulateur, mais a échoué sur device.it semble être que le fichier ne peut pas être trouvé après i sortie et recharger mon application . Et si je Mettre en oeuvre les pathToDataFile comme ceci:Pourquoi y enregistrer et le code de fichier de chargement fonctionne sur simulateur iphone mais a échoué sur l'appareil
(NSString *)pathToDataFile
{
NSArray * path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
NSString *docDir = [path objectAtIndex:0];
return [docDir stringByAppendingPathComponent:GAME_DAT];
}
le fichier de sauvegarde et reload a travaillé sur l'appareil, mais la méthode drawRect i mis en œuvre à mon avis, ne peut pas être appelé après j'ai appelé [auto setNeedsDisplay].
chris peut
Merci, mais mon problème est que si je change la fonction pathToDataFile, ma vue ne peut pas être affichée correctement, elle ne peut pas fonctionner dans la fonction drawRect que j'écris. – cgha