何もネタがなかったのでUIDocumentを使ってみる事にしました。
UIDocumentというのはiOS5から使える様になったクラスでMacでいうところのNSDocumentに対応するようです。注目すべきはiCloudと簡単に連携できることですなのでが、今回は単にまず最低限の動く実装を試してみました。
UIDocumentのサブクラスで次の二つのメソッドの実装をすれば良いです。
SimpleObject.m
//ロード
- (BOOL)loadFromContents:(id)contents ofType:(NSString *)typeName error:(NSError *__autoreleasing *)outError
{
NSLog(@"typeName:%@",typeName);
NSData *data = (NSData *)contents;
if (data.length == 0) {
NSLog(@"nothing");
self.text = @"";
return YES;
}
self.text = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
if (!self.text) {
NSLog(@"[Error]loadFromContents initWithData:%@",data);
return NO;
}
return YES;
}
//セーブ
- (id)contentsForType:(NSString *)typeName error:(NSError **)outError
{
return [(self.text)?:@"" dataUsingEncoding:NSUTF8StringEncoding];
}
サンプルをGitHubに置きました。もう少し機能を増やしたサンプルにしたいです。。