Может быть, потому что вы не можете записать в корневой каталог на устройстве iOS? Я думаю, что путь @"gameScene.plist"
действительно означает /gameScene.plist
, который не доступен для записи на устройстве iOS, но будет разрешен в OS X. Метод -archiveRootObject:toFile:
, вероятно, возвращает здесь NO
, указывая, что файл был не создан успешно.
Вы можете сделать что-то похожее на это:
NSURL *documentsURL = (NSURL *) [[[NSFileManager defaultManager] URLsForDirectory: NSDocumentDirectory inDomains: NSUserDomainMask] lastObject];
NSString *filePath = [[documentsURL path] stringByAppendingPathComponent: @"gameScene.plist"];
BOOL success = [NSKeyedArchiver archiveRootObject: self.parent toFile: filePath];
NSLog(@"Archive Success... %s", (success) ? "YES" : "NO");
NSLog(@"File Exists... %s", [[NSFileManager defaultManager] fileExistsAtPath: filePath] ? "YES" : "NO");
id unarchivedObject = [[NSKeyedUnarchiver unarchiveObjectWithFile: filePath] retain];
NSLog(@"Unarchive Success... %s", (unarchivedObject != nil) ? "YES" : "NO");
NSLog(@"Equal Objects... %s", [self.parent isEqual: unarchivedObject] ? "YES" : "NO");