NSObject-NSCoding 版本 1.0

NSObject-NSCoding 版本 1.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布时间最新发布2014年12月

未声明 维护。



  • greenisus 和 kingiol

NSObject+NSCoding 和 Archiver

由 Kingiol 构建

Mike Mayo Rackspace 移动应用 [email protected] twitter: @greenisus

这些是一些简单的类库,简化了通过 NSCoding 来实现对象持久化。这段代码是从 Rackspace Cloud / OpenStack iOS 应用程序 http://launchpad.net/openstack-ios 中提取出来的。

安装

静态

如果您不想使用 CocoaPods,只需将 Archiver.hArchiver.mNSObject+NSCoding.hNSObject+NSCoding.m 拖入您的项目中。

然后,在 Groups & Files 中的 Frameworks 上右键点击,选择 添加 -> 现有框架... 并选择 libobjc.A.dylib

用法

Archiver

此类可以将符合 NSCoding 协议的对象读取到磁盘和从磁盘写入。

SomeClass *myObject = [[[SomeClass alloc] init] autorelease];
myObject.someProperty = @"Hello world";

[Archiver persist:myObject key:@"myObject"];

// later on somewhere else...

SomeClass *myObject = [Archiver retrieve:@"myObject"];

NSObject+NSCoding

这个类别通过遍历类中的属性,为您编码/解码它们,简化了实现 NSCoding。它可以持久化基本类型(如 int 和 float)以及任何符合 NSCoding 的对象。

在您的类头中,实现 NSCoding 接口

@interface Model : NSObject <NSCoding>

在您的类实现中,调用自动方法

- (void)encodeWithCoder:(NSCoder *)coder {
   [self autoEncodeWithCoder:coder];
}

- (id)initWithCoder:(NSCoder *)coder {
    if (self = [super init]) {
        [self autoDecode:coder];
    }
    return self;
}

许可证

NSObject+NSCoding 使用 MIT 许可证发布。该许可证的完整描述可在 LICENSE 文件中找到。