Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 在属性列表文件Cocos2d中存储变量_Variables_Cocos2d Iphone_Plist_Store_Retain - Fatal编程技术网

Variables 在属性列表文件Cocos2d中存储变量

Variables 在属性列表文件Cocos2d中存储变量,variables,cocos2d-iphone,plist,store,retain,Variables,Cocos2d Iphone,Plist,Store,Retain,我正在编写一个cocos2d游戏,在大多数游戏中,你必须完成上一关才能进入下一关。每个级别位于不同的层(节点)中。我想将整数(1-20)存储到属性列表中,以便在整个游戏中保留变量。是的,我在网上搜索了大约一个小时,什么也找不到 我找到了一个存储变量的代码,但我不知道如何正确使用它 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSStri

我正在编写一个cocos2d游戏,在大多数游戏中,你必须完成上一关才能进入下一关。每个级别位于不同的层(节点)中。我想将整数(1-20)存储到属性列表中,以便在整个游戏中保留变量。是的,我在网上搜索了大约一个小时,什么也找不到

我找到了一个存储变量的代码,但我不知道如何正确使用它

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentPath = [paths objectAtIndex:0];
    NSString *path = [documentPath stringByAppendingPathComponent:@"levelscompleted.save"];


    NSMutableDictionary* myDict = [[NSMutableDictionary alloc] init];


    myDict = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
    NSString *nssLevelsCompleted = [myDict objectForKey:@"LevelsCompleted"];
    LevelsCompleted = [nssLevelsCompleted intValue];

    LevelsCompleted = 445;


    [myDict setObject:nssLevelsCompleted forKey:@"LevelsCompleted"];



    [NSKeyedArchiver archiveRootObject:myDict toFile:path];

下面是一些示例代码,以获得一些想法(使用ARC进行内存管理):

输出:

2012-01-29 16:24:30.844 plistTest[23531:f803] Achieved score for level 1: 999

看看这个,当我将变量保存在一个层中并尝试使用NSLog“NSLog”(@“Value:%@”,Value);”在日志中读取变量时,我的代码会不断返回(null);'它返回“(Value:null)”代码中有一个输入错误,当然字典必须这样初始化:NSMutableDictionary*plistDict=[[NSMutableDictionary alloc]init];尝试编辑的示例代码。现在它应该可以工作了。如果我想将writeToPlist中的值设置为NSString,我该怎么做?具有[plistDict setValue:FinalScore forKey:@“1级”和“高分数”];我有一个EXC\u坏访问。FinalScore是一个NSString。请看我编辑的答案,但实际上您应该投入一些自己的努力来解决这些问题。每次尝试访问已删除的变量时,都会发生EXC_BAD_访问。
2012-01-29 16:24:30.844 plistTest[23531:f803] Achieved score for level 1: 999