NSObject-NSCoding 1.0

NSObject-NSCoding 1.0

TestsTested
LangLanguage Obj-CObjective C
License MIT
ReleasedLast Release Dec 2014

Maintained by Unclaimed.


Downloads

Total21,976
Week0
Month116

Installs

Apps178
Test Targets20
powered by Segment

GitHub

Stars10
Watchers1
Forks4
Issues0
Contributors4
Pull Requests0

Code

Files4
LOCLines of Code 233


  • By
  • greenisus and kingiol

NSObject+NSCoding and Archiver

build by Kingiol

Mike Mayo Rackspace Mobile Apps [email protected] twitter: @greenisus

These are some simple classes to make object persistence with NSCoding easier. This code was extracted from the Rackspace Cloud / OpenStack iOS app at http://launchpad.net/openstack-ios

Installation

Static

If you prefer not to use CocoaPods, simply drag Archiver.h, Archiver.m, NSObject+NSCoding.h, and NSObject+NSCoding.m into your project.

Then, right click Frameworks in Groups & Files and choose Add -> Existing Frameworks... and choose libobjc.A.dylib.

Usage

Archiver

This class will read and write objects that conform to the NSCoding protocol to disk.

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

This category simplifies implementing NSCoding by iterating over the properties of your class and encoding/decoding them for you. It persists primitives (such as ints and floats) as well as any objects that conform to NSCoding.

In your class header, conform to NSCoding:

@interface Model : NSObject <NSCoding>

In your class implementation, call the automatic methods:

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

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

License

NSObject+NSCoding is released under the MIT license. A full description of that license is available in the LICENSE file.