将自定义对象转换为 NSData 以与 NSFileManager 一起使用

Posted

技术标签:

【中文标题】将自定义对象转换为 NSData 以与 NSFileManager 一起使用【英文标题】:cast a custom object to NSData for use with NSFileManager 【发布时间】:2011-06-14 12:49:20 【问题描述】:

我有一个用目标 c 编写的对象。它非常简单,只存储了一些值。

我的对象

@interface MyObject : NSObject 

    NSString *filename;
    NSMutableData *somedata;



@property(nonatomic,copy)NSString *filename;
@property(nonatomic,retain)NSMutableData *somedata;


@end

我想使用 NSFileManager 将此对象存储到磁盘。我相信 NSFileManager 在使用 createFileAtPath 时将 NSData 的实例作为内容参数。如何将此对象转换为适当的类型以使用 createFileAtPath?

【问题讨论】:

【参考方案1】:

所有对象都来自 NSObject。在这里我们可以将自定义对象从 NSObject 派生到 NSData

您需要在您的自定义类上实现 encodeWithCoder:,使用传递给它的 NSCoder 序列化其所有属性。如果其属性包含更多自定义类,则它们也需要 encodeWithCoder: 实现。

【讨论】:

以上是关于将自定义对象转换为 NSData 以与 NSFileManager 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

Typescript/Angular 12:将自定义对象转换为参数对象

Flutter 将自定义堆叠对象转换为 json

将自定义javascript对象转换为json [重复]

Swift 4 如何将自定义对象数组转换为 JSON

将自定义对象转换为要保存在 NSUserDefauts 中的数据

如何正确地将自定义按钮集转换为响应对象?