恢复文件文件库应用程序

时间:2011-10-06 09:24:51

标签: xcode cocoa document

我的第一个基于文档的应用程序有点问题。很简单: 在myDocument.m上我做了一些方法

- (IBAction)salva:(id)sender {

    [array addObject:@"Hello"];

    [nomeLabel setStringValue:@"ciao"];

    NSLog(@"%@",[array objectAtIndex:0]);

}

这是为了在我的数组上保存一个值

- (BOOL) writeToURL:(NSURL *)url ofType:(NSString *)typeName error:(NSError **)outError {
    return [array writeToURL:url atomically:YES];
}

这用于将数组保存在文件

- (void) imposta {

    [nomeLabel setStringValue:[array objectAtIndex:0]];

    NSLog(@"Ciao");

}

使用此方法我使用数组

的内容设置标签的内容
- (BOOL) readFromURL:(NSURL *)url ofType:(NSString *)type error:(NSError **)outError{

    [ array release];

    array = [[NSMutableArray alloc] initWithContentsOfURL:url];

    NSLog(@"%@",[array objectAtIndex:0]);

    [self imposta];

    return YES;
}

这用于加载文件。 问题是我无法使用加载数组的内容设置标签。数组wes加载,因为使用NSLog我看到正确的值,问题是我不能把它放在

1 个答案:

答案 0 :(得分:1)

首次打开文档时,在实例化窗口控制器之前调用-readFromURL:ofType:error:。这意味着你的nameLabel连接可能是零。您应该最早在-awakeFromNib-windowControllerDidLoadNib:更新。

但实际上,NSDocument是一个模型对象,因此无论如何都不应该直接连接到视图对象。文档应该只是存储其数据,窗口控制器应该负责更新视图。