我正在编写一个主要以网格模式为中心的iPhone应用程序,因此我有一个Pattern类,其中包含NSMutableArray的NSMutableArrays.这个类实现了NSCoding,看起来下面的代码在我的iPhone应用程序中运行得很好:
GridPattern * pattern = [GridPattern patternWithWidth:8 height:8];
[pattern setValueAtColumn:0 row:7 value:1];
[NSKeyedArchiver archiveRootObject:pattern toFile:@"test.pat"];
pattern = [NSKeyedUnarchiver unarchiveObjectWithFile:@"test.pat"];
Run Code Online (Sandbox Code Playgroud)
如果我调试上面的代码,我在步骤4之后发现,我有一个GridPattern对象,其中为第0行第7行设置了适当的值.
我还编写了一个Cocoa OSX应用程序,用于为iPhone应用程序创建模式,该应用程序也使用相同的GridPattern类.它还可以成功加载和保存模式.
我想做的是:
在OS X应用程序中创建和保存模式
test.pat)pattern = [NSKeyedUnarchiver unarchiveObjectWithFile:@"test.pat"];
但是,当我尝试从该文件中取消归档对象时,返回的所有内容都是nil.我以为我可能有错误的文件路径,也试图@"Resources/test.pat"无济于事.
我只是错误地提到该文件?或者归档对象根本不是跨平台的?这整个方法是完全错误的吗?如果是这样,你会怎么做?