我的第一个基于文档的应用程序有点问题。很简单: 在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我看到正确的值,问题是我不能把它放在
答案 0 :(得分:1)
首次打开文档时,在实例化窗口控制器之前调用-readFromURL:ofType:error:
。这意味着你的nameLabel连接可能是零。您应该最早在-awakeFromNib
或-windowControllerDidLoadNib:
更新。
但实际上,NSDocument是一个模型对象,因此无论如何都不应该直接连接到视图对象。文档应该只是存储其数据,窗口控制器应该负责更新视图。