特に、色とタグのプロパティを持つ「ノード」(下のヘッダー) の配列を保存しているという問題があります。- (void)saveDataToDiskWithPath:(NSURL*)path として保存すると、ログにこれらのプロパティが存在することが示されます。後で保存したファイルから配列を再度ロードすると、ノードのフレームは保持されますが、配列内の各ノードはタグと色を失います...理由はありますか? 私は何が間違っているのでしょうか?多分私はただ疲れているだけで、後ですべてが意味をなすでしょう...
Node.h:
//
// Node.h
//
#import <Cocoa/Cocoa.h>
@interface Node : NSView {
@private
NSColor *thisColor;
NSColor *originalColor;
NSRect dragRect;
BOOL msDn;
long tag;
BOOL amSelected;
}
@property long tag;
@property (nonatomic, retain) NSColor* originalColor;
- (id)initWithFrame:(NSRect)frame andColor:(NSColor*)color;
- (void)select:(BOOL)yesOrNo;
@end
保存方法:
- (void) saveDataToDiskWithPath:(NSURL*)path
{
NSLog(@"Path is %@", [path absoluteString]);
NSMutableDictionary * rootObject;
rootObject = [NSMutableDictionary dictionary];
for(Node* node in [sharedValues nodes]){
NSLog(@"Node has color %@ and tag %ld.", [node originalColor], [node tag]);
}
[rootObject setValue: [imageView aPath] forKey:@"path"];
[rootObject setValue:[sharedValues nodes] forKey:@"nodes"];
[NSKeyedArchiver archiveRootObject: rootObject toFile: [path path]];
}
ロード方法:
- (void)loadDataFromDiskWithPath:(NSURL*)path
{
NSDictionary * rootObject;
rootObject = [NSKeyedUnarchiver unarchiveObjectWithFile:[path path]];
[imageView setAPath:[rootObject valueForKey:@"path"]];
[sharedValues setNodes:[rootObject valueForKey:@"nodes"]];
[imageView setNeedsDisplay:YES];
}