Восстановить файл документа базы приложения - PullRequest
0 голосов
/ 06 октября 2011

У меня небольшая проблема с моим первым приложением на основе документов. Это очень просто: на 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;
}

это для загрузки файла. Проблема в том, что я не могу установить метку с содержимым загруженного массива. Массив загружен, потому что с NSLog я вижу правильное значение, проблема в том, что я не могу поместить его в th

1 Ответ

1 голос
/ 07 октября 2011

При первом открытии документа вызывается -readFromURL:ofType:error: перед созданием оконных контроллеров.Это означает, что ваше соединение nameLabel, вероятно, нольВы должны обновить в -awakeFromNib или -windowControllerDidLoadNib: в самое ближайшее время.

Но на самом деле NSDocument - это объект модели и, следовательно, не должен быть подключен напрямую к объекту представления в любом случае.Документ должен просто хранить свои данные, а оконный контроллер должен отвечать за обновление представления.

...