问题标签 [nskeyedarchiver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - NSKeyedUnarchiver 会自动释放吗?
我正在对属性列表进行一些归档,当我使用 NSKeyedUnarchiver 取消归档我的数据时,我发现如果我之后释放该对象,我的应用程序会崩溃。我想知道 finishDecoding 消息是否也会自动释放对象。当我释放它时它崩溃似乎很奇怪。
iphone-sdk-3.0 - 游戏状态单例 cocos2d,initWithEncoder 总是返回 null
我正在尝试在 cocos2d 中编写一个基本的测试“游戏状态”单例,但由于某种原因,在加载应用程序时,从未调用过 initWithCoder。任何帮助将不胜感激,谢谢。
这是我的单例 GameState.h:
...和GameState.m:
...我正在保存应用退出时的状态,如下所示:
...并在应用程序完成加载时加载状态,如下所示:
我也尝试过在我调用 loadState 的地方移动,例如在我的主 CCScene 中,但这似乎也不起作用。
再次提前感谢。
iphone - NSKeyedArchiver 和 NSValue - 如何存档?
如何归档 NSValues 数组?我应该进行哪些转换才能做到这一点?它不会按原样存档。
代码:
错误:
数组数据:
)
iphone - 尝试取消归档多个对象时,NSKeyedUnarchiver 阻塞
我们有一个自定义矩阵类,我们正在尝试归档和取消归档一个包含其中四个的 NSArray。第一个似乎可以很好地取消归档(我们可以看到 initWithCoder 被调用了一次),但随后程序只是挂起,使用了 100% 的 CPU。它不会继续或输出任何错误。这些是来自矩阵类的相关方法(行、列和矩阵是我们唯一的实例变量):
}
p>这就是我们真正想要做的:
p>我们尝试一次归档一个(没有 NSArray),每个归档到不同的文件,但它仍然挂在第二个文件上。
让我们抓狂的是,我们可以很好地归档和取消归档单个矩阵。我们已经(成功地)使用了比这四个组合大很多倍的矩阵。
iphone - NSArray 上的 NSKeyedArchiver 开销很大
我在为 iPhone 应用程序生成数据的 Mac OS X 程序中使用 NSKeyedArchiver。我发现默认情况下,生成的档案比我预期的要大得多。例子:
这存储了 10 * 100000 = 1M 字节的有用数据,但结果文件的大小几乎是 3 兆字节。开销似乎随着数组中项目的数量而增长。在这种情况下,对于 1000 个项目,文件大约为 22k。
“file”报告它是“Apple 二进制属性列表”(不是 XML 格式)。
有没有一种简单的方法可以防止这种巨大的开销?我想使用 NSKeyedArchiver 因为它提供的简单性。我可以将数据写入我自己的非通用二进制格式,但这不是很优雅。此外,将数据聚合成大块并将它们提供给 NSKeyedArchiver 应该可以工作,但同样,这有点超过了使用简单&easy&ready to use archiver 的意义。我是否错过了一些可以减少这种开销的方法调用或使用模式?
iphone - NSKeyedUnarchiver - 访问错误
我试图将一个对象归档到一个 plist 文件中,然后加载它以填充一个 tableView。似乎该文件已正确存档,但是在尝试从文件中获取值时访问权限不正确。
难道我做错了什么?
这是我保存它的地方
在这里,我尝试将其从文件中取出并将其保存回数组
我尝试构建细胞的部分
这里是错误的访问错误
当前语言:自动;目前objective-c断言失败:(cls),函数getName,文件/SourceCache/objc4_Sim/objc4-427.5/runtime/objc-runtime-new.mm,第3990行。断言失败:(cls),函数getName,文件/SourceCache /objc4_Sim/objc4-427.5/runtime/objc-runtime-new.mm,第 3990 行。断言失败:(cls),函数 getName,文件 /SourceCache/objc4_Sim/objc4-427.5/runtime/objc-runtime-new.mm,第 3990 行。断言失败:(cls),函数 getName,文件 /SourceCache/objc4_Sim/objc4-427.5/runtime/objc-runtime-new.mm,第 3990 行。
objective-c - NSMutableArray 并保存到文件
我有一个名为的类Shop
,它包含数据成员(NSString
,NSInteger
并且NSMutableArray
包含另一个类(也有NSString
和NSInteger
)。
现在,如果我NSMutableArray
用来保存Shop
s 列表,将列表保存到文件并稍后加载它的最佳方法是什么?
同样,该类Shop
包含另一个类的数据成员;这两个类都有NSString
和NSInteger
(可能还有NSData
和NSDate
)。
我听说了一些关于archiver
??
谢谢。
iphone - iPhone 上的快速(反)序列化
我正在为 iPhone OS 开发游戏/引擎。这是我第一次使用 Objective-C。
我为几何数据和纹理制作了自己的二进制格式,我专注于 PVRTC。就速度和空间而言,这应该是最佳方法。我真的想将加载时间保持在最低限度,并且 - 如果可能的话 - 也能够非常快速地保存。
所以现在我试图在不牺牲性能的情况下让我的“实体”东西持久化。
首先,我想使用 NSKeyedArchiver。据我所知,它不是很快。此外,我要序列化的主要是由带有一些整数和字符串的浮点数组成的结构,因此实际上不需要所有“对象图”开销。
NSArchiver 本来会更合适,但出于某种原因,他们将其从 iphone 中删除了。
所以现在我正在考虑再次制作自己的序列化方案。我认为 NSKeyedArchiver 很慢是错误的吗(我只读过,没有自己测试过)?如果是这样,在不牺牲速度的情况下编码/解码结构(没有指针,主要是浮点数)的最佳方法是什么?
objective-c - 我的声音去哪儿了?
在我的 Row 类中,我有 initWithCoder 方法,并且在该方法中恢复的所有内容都可以正常工作,但仅在该方法内。调用该方法后,我释放了 Row 类中的一组声音。声音类也有 initWithCoder 方法,声音播放良好但仅在 Row 类的 initWithCoder 方法中。解码 Row 对象后,声音数组完全消失,无法调用。
这是我的 initWithCoder 来源:
日志显示计数为 8(这是在取消归档时)。然后我创建的行对象被分配。并且生成的行对象不再具有 soundArray。
所以现在每当我调用 soundArray 时,它都会崩溃。
请帮忙(soundArray 是一个 NSMutableArray)。
objective-c - 未归档的对象会发生什么?
在我用 NSKeyedUnarchiver 取消归档一个对象后,我可以像往常一样使用它,但我无法重新归档它。当我尝试时,它崩溃了。
我尝试在苹果中查看开发人员资源,但我还没有看到正确使用 NSKeyedArchiver 的完整说明。请帮忙。
据我所知,这可能是我的声音课。当你检查这个时,我会检查它。
虽然,经过研究,我发现了这一点:
被子类覆盖以在键控归档期间用另一个对象替换它自己。
- (id)replacementObjectForKeyedArchiver:(NSKeyedArchiver *)archiver
参数 archiver 创建档案的键控存档器。返回值 对象编码而不是接收者(如果不同)。
讨论 只有在编码器中没有为对象设置替换映射时才调用此方法(例如,由于先前调用了 replacementObjectForKeyedArchiver: 到该对象)。