Ios 将skspritenode位置保存到plist不起作用

Ios 将skspritenode位置保存到plist不起作用,ios,plist,skspritenode,writetofile,Ios,Plist,Skspritenode,Writetofile,我所做的很简单,我试图将一个sprite节点坐标保存到plist。如果我手动强制输入一个静态值,效果很好,但是如果我尝试将node.position.x放入plist中,它就不起作用了。当然,在使用writeToFile之前,我会将node.position.x放入NSNumber中 另一个注意事项是,我正在从:-voidapplicationWillResignActive:UIApplication*应用程序调用此函数 appdelegate的函数 查看控制台,所有节点位置都显示得很好,只是

我所做的很简单,我试图将一个sprite节点坐标保存到plist。如果我手动强制输入一个静态值,效果很好,但是如果我尝试将node.position.x放入plist中,它就不起作用了。当然,在使用writeToFile之前,我会将node.position.x放入NSNumber中

另一个注意事项是,我正在从:-voidapplicationWillResignActive:UIApplication*应用程序调用此函数

appdelegate的函数

查看控制台,所有节点位置都显示得很好,只是没有写入plist。我真的是不知所措,再次,如果我在里面强行输入一个数字,比如6或10,或者写得很好的东西

如蒙协助,将不胜感激

for (SKSpriteNode* node in ar){
            NSNumber* x = [NSNumber numberWithInt:(int)node.position.x];
            NSNumber* y = [NSNumber numberWithInt:(int)node.position.y];
            [node_locs addObject:[[NSMutableDictionary alloc] initWithObjectsAndKeys:x,@"X",y,@"Y",nil]];
        }

然后我做了通常的写文件,我知道它是有效的。

好的,这就是我的问题。调用NSNotificationCenter方法时,我保存坐标的方法被调用了两次。我不知道为什么会这样,但这很烦人。如果在这一点上解决了我的问题。感谢响应人员。

如果您认为问题在于应用程序没有足够的时间将内容写入磁盘,请尝试创建一个可处理该内容的方法。我刚刚发现applicationWillResignActive方法被调用了两次,第二次节点位置被旧的x和y位置覆盖。我似乎有这样一个问题:我的viewDidLoad方法被从我的skscene的视图控制器多次调用,因此skscene didMoveToView方法也被多次调用。这可能是什么原因造成的?老实说,我甚至不确定加载方法与辞职委托方法之间的关系,但通常情况下,如果您使用相同的配置呈现两个视图不同的控制器,那么viewDidLoad可以在大约同一时间被调用两次。试着调试它,并在这两个调用中比较视图控制器。我很感激您的输入。我试试看。