小编Sam*_*Cee的帖子

为什么我似乎无法取消归档由OS X应用程序归档的iPhone应用程序中的对象?

我正在编写一个主要以网格模式为中心的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应用程序中创建和保存模式

    1. 将模式文件添加到XCode中的资源组中,用于iPhone应用程序; (我把它添加为test.pat)
    2. 使用以下代码解压缩我的iPhone应用程序中的模式:

    pattern = [NSKeyedUnarchiver unarchiveObjectWithFile:@"test.pat"];

但是,当我尝试从该文件中取消归档对象时,返回的所有内容都是nil.我以为我可能有错误的文件路径,也试图@"Resources/test.pat"无济于事.

我只是错误地提到该文件?或者归档对象根本不是跨平台的?这整个方法是完全错误的吗?如果是这样,你会怎么做?

iphone cocoa cocoa-touch objective-c

2
推荐指数
1
解决办法
310
查看次数

标签 统计

cocoa ×1

cocoa-touch ×1

iphone ×1

objective-c ×1