archiveRootObject:toFile:
指定したルートオブジェクトをコード化して指定したパスに保存します
+(BOOL)archiveRootObject:(id)rootObject: toFile:(NSString *)path:
解説
指定したルートオブジェクトをコード化して指定したパスに保存します。
このメソッドはarchivedDataWithRootObject:を呼び出してからwriteToFile:atomically:の第一引数にpathを、第二引数にYESをセットしてメッセージを送信します。
返り値
( BOOL )
正常に書き込めたかYES/NO
引数
( id )rootObject
ルートオブジェクト
( NSString * )path
パス
フレームワーク
Foundation
クラス
NSArchiver
Class Methods
使用可能
10.0
参照
- initForWritingWithMutableData:
- encodeRootObject:
例文
#import "MyObject.h" #import "MyView.h" @implementation MyObject - (IBAction)slider:(id)sender { } - (IBAction)archive:(id)sender { //セーブパネル設定 NSSavePanel *savePanel = [NSSavePanel savePanel]; //拡張子codeにする [savePanel setRequiredFileType:@"code"]; //ウインドウのコンテンツビュー丸ごとアーカイブ switch ([savePanel runModalForDirectory:NSHomeDirectory() file:@""]) { case NSOKButton: [NSArchiver archiveRootObject:[window contentView] toFile:[savePanel filename]]; 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