2013-07-06 25 views
0

我創建了一個ViewController和一個xib文件。 所以ViewController是文件的所有者。 要頭文件我增加了NSSplitViewDelegate爲NSSplitView設置代理錯誤結果

@interface ResultViewController : NSViewController <NSSplitViewDelegate> 

在界面生成器我設定的SPLITVIEW的文件主階級的代表。 但是,如果我嘗試加載它導致以下錯誤的觀點:

EXC_BAD_ACCESS(code=13, adress=0x0)

在編譯過程中沒有出現警告或錯誤。

我打開看,使用方式如下:

ResultViewController *newView = [[ResultViewController alloc] initWithNibName:@"ResultViewController" bundle:nil]; 
[[self.windowIbject animator] setContentView: newView.view]; 

回答

1

嘗試保留您newView控制器。在這裏你初始化它添加

@property (nonatomic, strong) ResultViewController *newView; 

然後:

self.newView = newView; 
+0

感謝的作品,你可以將屬性添加到您初始化它的類的接口。所以只是爲了我的理解:如果我沒有這個類,那麼當代理嘗試訪問它時,類已經被釋放了。 – Pacnos

+1

是的。因爲委託人通常(有一些例外)被弱引用,所以沒有強烈的引用留給你的視圖控制器,所以ARC發佈了它。 – Danilo