问题标签 [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.
iphone - NSCoding 与对象内的 NSString
我的问题是我检索我的 NSArrayStore
对象,我所有的 NSString 属性都导致BadAccess
错误。int 和 double 属性工作正常!
商店.h
商店.m
这是我用于存储和检索数组的代码。
感觉就像我尝试了一切,但无法弄清楚它在解码中是如何工作的,但在我将它放入数组后循环数组时却没有。
有人有想法么?
objective-c - UITableViewController 与 NSCoding 兼容吗?
当我尝试获取继承自 UITableViewController 以符合 NSCoding 的 ah 文件时,我无法切换视图。
将上面的代码插入到 m 文件中是导致问题的原因。这是为什么?
objective-c - 如何使用 NSCoder 恢复数组
到目前为止,我有以下内容:
我应该把加载数组的代码放在这里吗?我应该放什么,应该放哪里?
objective-c - 此代码可以与自定义对象数组一起使用吗?
如果我使一组自定义对象符合 NSCoding 协议,那么上述方法是否有效?我是否必须使自定义类和包含自定义对象数组的视图控制器都符合 NSCoding 协议或只是自定义类?我必须在某处使用 NSKeyedArchiver 吗?
iphone - NSCoding 和整数数组
你如何使用 NSCoding 来编码(和解码)一个由十个原始类型值组成的数组int
?单独编码每个整数(在 for 循环中)。但是如果我的数组包含一百万个整数呢?有没有比在这里使用 for 循环更令人满意的选择?
编辑(在第一个答案之后):然后解码?(@贾斯汀:然后我会勾选你的答案。)
ios - 释放使用 initFromFile 方法创建的对象时崩溃
我创建了一个符合 NSCoding 的名为“DateTracker”的对象,因此它包含 encodeWithCoder 和 initWithCoder 方法。当我初始化它时,我调用以下命令:
initFromFile 方法如下所示:
但是,当我尝试打电话时
我的应用程序崩溃。
当我使用性能工具运行应用程序来检查内存泄漏时,它抱怨我没有释放这个对象。
任何想法我做错了什么?
iphone - NSCoding 似乎没有存储我的 UIImageView 的框架
我似乎无法让 NSCoding 存储我的 UIImageView 子类对象的“框架”或“中心”属性。它似乎存储了其他所有内容,包括自定义属性和标准类属性(例如“隐藏”等),但不存储“框架”或“中心”属性。我不是要归档 UIImage(因为这不符合 NSCoding)。
如果需要,我会发布代码,但除了设置它之外,我没有对“框架”做任何特别的事情。
有任何想法吗?
objective-c - NSCoding 协议问题
我想将归档(NSCoding)协议添加到我的模型类中,然后我实现这两个方法encodeWithCoder:(NSCoder*)coder
和initWithCoder:(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*)str
with encodeObject:(id)obj
,则错误停止,但结果是,存档数据不会复制实例变量值(cmiiw)。我错过了什么吗?
谢谢。黑边
objective-c - 如何在 NSUserDefaults 中保存包含自定义对象的 NSMutableArrays 的 NSMutableArray
通过在自定义类中实现 NSCoding,我能够将自定义对象的 NSMutableArray 保存到 NSUserDefaults。但是,现在我想保存这些数组的 NSMutableArray。当我尝试这样做时,编译器会抱怨。如何才能做到这一点?
objective-c - 复制和序列化 Quartz 引用的最佳实践
我在 Cocoa 中有包含 Quartz-2D 引用(描述颜色、填充图案、渐变和阴影)的对象。我想NSCoding
在我的对象中实现协议,因此需要序列化那些不透明的 Quartz-2D 结构。
可能的解决方案可能是:
在我的对象中定义一组属性,允许在需要时从头开始设置数据结构。然后可以轻松地对它们进行序列化。示例:为红色、绿色、蓝色和 alpha 存储四个浮点数,然后使用
CGColorCreate
. 缺点:信息重复,因此存在潜在的一致性和(到目前为止较小的)空间消耗问题。我需要手动编写属性设置器,以便在组件更改时重新创建 Quartz 结构。那会使我的代码大大膨胀。使用 Quartz 函数读出属性。示例:用于
CGColorGetComponents
颜色。缺点:它似乎适用于颜色。但是其他结构没有等效的功能,所以我看不出这如何适用于渐变、阴影、阴影等。直接从原始的不透明结构中读出属性。缺点:正如文档所说,这些结构应该是不透明的。因此,如果引擎盖下发生某些变化,我的代码将会中断。
CGColorGetComponents
(如果应该这样做,Apple 肯定不会提供这样的功能。)此外,像CGFunctionRef
inside aCGShadingRef
这样的东西真的会自找麻烦。
序列化 Quartz 结构的最佳实践是什么?