MotionInMotion Episode 6 - NSCoder, NSCoding, and NSUserDefaults
NSCoder, NSCoding, and NSUserDefaults - MotionInMotion
NSCoder, NSUserDefaultsを使った実装
- コアダータ
- NSCoding Protocol
- def initWithCoder(decoder)
- self.title = decoder.decodeObjectForKey('title')
- self.completed = decoder.decodeBoolForKey('completed')
- self
- def encodeWithCoder(encoder)
- encoder.encodeObject(self.title, forKey:'title')
- encoder.encodeBool(self.completed, forKey:'completed')
- def initWithCoder(decoder)
- def storageFile
- NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, true)[0] + '/todos'
- load
- self.todos = NSKeyedUnarchiver.unarchiveObjectWithFile(self.storageFile) ||
- save
- NSKeyedArchiver.archiveRootObject(self.todos, toFile:self.storageFile)
- NSUserDefaults
- load
- data = NSUserDefaults.standardUserDefaults.objectForKey('todos')
- self.todos = NSKeyedUnarchiver.unarchiveObjectWithData(data) ||
- save
- data = NSKeyedArchiver.archivedDataWithRootObject(self.todos)
- NSUserDefaults.standardUserDefaults.setObject(data, forKey:'todos')
- NSUserDefaults.standardUserDefaults.synchronize
- load