Аутлеты и методы экземпляров - PullRequest
0 голосов
/ 10 августа 2011

У меня небольшая проблема и надеюсь, что вы мне поможете.Я хочу вызвать метод экземпляра окна подкласса и установить там интерфейс пользователя:

//AppDelegate.h
#import <Cocoa/Cocoa.h>

@class MainView;//The main window

@interface DownloadedAppDelegate : NSObject <NSApplicationDelegate> {
    IBOutlet MainView*mainview;//the objects are in the same nib, outlet connected with the window
}

@property(nonatomic,retain) IBOutlet MainView*mainview;

@end

.

//AppDelegate.m
#import "MainView.h"

@synthesize mainview;

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[mainview launched];//But sometimes this code fails, I don't know why
//launched sets up the interface
}

-(void)dealloc {
mainview=nil;
}

MainView принадлежит NSWindow.

что-то не так или что-то улучшается?Должен ли я создать пользовательский интерфейс где-нибудь еще?Вы знаете, почему этот код не всегда работает?

Ответы [ 2 ]

0 голосов
/ 10 августа 2011

Используйте отладчик! Запускается даже по вызову?

Установите точку останова на запущенный вызов и посмотрите на значение mainview. Это ноль? Это связано с тем, что розетки не гарантированно подключены до awakeFromNib.

0 голосов
/ 10 августа 2011

Попробуйте положить

[mainview launched];

в

-(void)awakeFromNib {

}

...