encodeRootObject:
ルートオブジェクトをエンコードします
-(void)encodeRootObject:(id)rootObject:
解説
rootObjectで指定されたルートオブジェクトをそのオブジェクト二接続されている全てのオブジェクトと一緒にエンコードします。
オブジェクトが複数回見つかった場合は参照情報は複数回保存され、オブジェクト自体は一度だけエンコードされます。
返り値
( void )
なし
引数
( id )rootObject
ルートオブジェクト
フレームワーク
Foundation
クラス
NSArchiver
Instance Methods
使用可能
10.0
参照
例文
#import "MyObject.h" #import "MyView.h" @implementation MyObject - (IBAction)slider:(id)sender { } - (IBAction)archive:(id)sender { NSArchiver *archiver = [[NSArchiver alloc] initForWritingWithMutableData: [NSMutableData data]]; //セーブパネル設定 NSSavePanel *savePanel = [NSSavePanel savePanel]; //拡張子codeにする [savePanel setRequiredFileType:@"code"]; //ウインドウのコンテンツビュー丸ごとアーカイブ switch ([savePanel runModalForDirectory:NSHomeDirectory() file:@""]) { case NSOKButton: [archiver encodeRootObject:[window contentView]]; break; } } - (IBAction)unarchive:(id)sender { //拡張子codeのファイルを選ぶ NSArray *fileTypes = [NSArray arrayWithObject:@"code"]; //オープンパネル設定 NSOpenPanel *openPanel = [NSOpenPanel openPanel]; //ホームディレクトリで開く [openPanel setDirectory:NSHomeDirectory()]; // if ([openPanel runModalForTypes:fileTypes]) { id aView = [NSUnarchiver unarchiveObjectWithFile: [openPanel filename]]; [(NSWindow *)window setContentView:aView]; } } @end