问题标签 [nscoding]

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.

0 投票
1 回答
5282 浏览

iphone - NSCoding 与对象内的 NSString

我的问题是我检索我的 NSArrayStore对象,我所有的 NSString 属性都导致BadAccess错误。int 和 double 属性工作正常!

商店.h

商店.m

这是我用于存储和检索数组的代码。

感觉就像我尝试了一切,但无法弄清楚它在解码中是如何工作的,但在我将它放入数组后循环数组时却没有。

有人有想法么?

0 投票
1 回答
157 浏览

objective-c - UITableViewController 与 NSCoding 兼容吗?

当我尝试获取继承自 UITableViewController 以符合 NSCoding 的 ah 文件时,我无法切换视图。

将上面的代码插入到 m 文件中是导致问题的原因。这是为什么?

0 投票
1 回答
491 浏览

objective-c - 如何使用 NSCoder 恢复数组

到目前为止,我有以下内容:

我应该把加载数组的代码放在这里吗?我应该放什么,应该放哪里?

0 投票
1 回答
301 浏览

objective-c - 此代码可以与自定义对象数组一起使用吗?

如果我使一组自定义对象符合 NSCoding 协议,那么上述方法是否有效?我是否必须使自定义类和包含自定义对象数组的视图控制器都符合 NSCoding 协议或只是自定义类?我必须在某处使用 NSKeyedArchiver 吗?

0 投票
1 回答
774 浏览

iphone - NSCoding 和整数数组

你如何使用 NSCoding 来编码(和解码)一个由十个原始类型值组成的数组int?单独编码每个整数(在 for 循环中)。但是如果我的数组包含一百万个整数呢?有没有比在这里使用 for 循环更令人满意的选择?

编辑(在第一个答案之后):然后解码?(@贾斯汀:然后我会勾选你的答案。)

0 投票
1 回答
152 浏览

ios - 释放使用 initFromFile 方法创建的对象时崩溃

我创建了一个符合 NSCoding 的名为“DateTracker”的对象,因此它包含 encodeWithCoder 和 initWithCoder 方法。当我初始化它时,我调用以下命令:

initFromFile 方法如下所示:

但是,当我尝试打电话时

我的应用程序崩溃。

当我使用性能工具运行应用程序来检查内存泄漏时,它抱怨我没有释放这个对象。

任何想法我做错了什么?

0 投票
2 回答
389 浏览

iphone - NSCoding 似乎没有存储我的 UIImageView 的框架

我似乎无法让 NSCoding 存储我的 UIImageView 子类对象的“框架”或“中心”属性。它似乎存储了其他所有内容,包括自定义属性和标准类属性(例如“隐藏”等),但不存储“框架”或“中心”属性。我不是要归档 UIImage(因为这不符合 NSCoding)。

如果需要,我会发布代码,但除了设置它之外,我没有对“框架”做任何特别的事情。

有任何想法吗?

0 投票
1 回答
2294 浏览

objective-c - NSCoding 协议问题

我想将归档(NSCoding)协议添加到我的模型类中,然后我实现这两个方法encodeWithCoder:(NSCoder*)coderinitWithCoder:(NSCoder*)coder. MyModelClass 有 2 个实例变量(NSString 和 NSImage),所以我使用该encodeObject:(id)object forKey:(NSString*)string方法对对象加上特定键的值进行编码。但我一直收到错误:

*** -encodeObject:forKey: only defined for abstract class. Define -[NSArchiver encodeObject:forKey:]!

这是我的 NSCoding 方法代码:

这就是我在控制器类中调用它们的方式:

如果我更改encodeObject:(id)obj forKey:(NSString*)strwith encodeObject:(id)obj,则错误停止,但结果是,存档数据不会复制实例变量值(cmiiw)。我错过了什么吗?

谢谢。黑边

0 投票
1 回答
1069 浏览

objective-c - 如何在 NSUserDefaults 中保存包含自定义对象的 NSMutableArrays 的 NSMutableArray

通过在自定义类中实现 NSCoding,我能够将自定义对象的 NSMutableArray 保存到 NSUserDefaults。但是,现在我想保存这些数组的 NSMutableArray。当我尝试这样做时,编译器会抱怨。如何才能做到这一点?

0 投票
1 回答
881 浏览

objective-c - 复制和序列化 Quartz 引用的最佳实践

我在 Cocoa 中有包含 Quartz-2D 引用(描述颜色、填充图案、渐变和阴影)的对象。我想NSCoding在我的对象中实现协议,因此需要序列化那些不透明的 Quartz-2D 结构。

可能的解决方案可能是:

  • 在我的对象中定义一组属性,允许在需要时从头开始设置数据结构。然后可以轻松地对它们进行序列化。示例:为红色、绿色、蓝色和 alpha 存储四个浮点数,然后使用CGColorCreate. 缺点:信息重复,因此存在潜在的一致性和(到目前为止较小的)空间消耗问题。我需要手动编写属性设置器,以便在组件更改时重新创建 Quartz 结构。那会使我的代码大大膨胀。

  • 使用 Quartz 函数读出属性。示例:用于CGColorGetComponents颜色。缺点:它似乎适用于颜色。但是其他结构没有等效的功能,所以我看不出这如何适用于渐变、阴影、阴影等。

  • 直接从原始的不透明结构中读出属性。缺点:正如文档所说,这些结构应该是不透明的。因此,如果引擎盖下发生某些变化,我的代码将会中断。CGColorGetComponents(如果应该这样做,Apple 肯定不会提供这样的功能。)此外,像CGFunctionRefinside aCGShadingRef这样的东西真的会自找麻烦。

序列化 Quartz 结构的最佳实践是什么?