我能夠通過一些試驗和錯誤解決我的問題,但我不確定它爲什麼有效。我有兩個主要的類 - AboutWindowController和MainView - 並且我無法加載AboutWindow筆尖。爲什麼'windowWindow'在'window'不工作時在這裏工作?
這裏的東西,沒有工作(在MainView.m):
#import "MainView.h"
#import "AboutWindowController"
...
-(id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
AboutWindowController *aboutWindowController = [[AboutWindowController alloc] initWithWindowNibName: @"AboutWindowController"];
[aboutWindowController window];
...
}
return self;
}
...
然而,這沒有工作(使用LOADWINDOW代替窗口)
#import "MainView.h"
#import "AboutWindowController"
...
-(id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
AboutWindowController *aboutWindowController = [[AboutWindowController alloc] initWithWindowNibName: @"AboutWindowController"];
[aboutWindowController loadWindow];
...
}
return self;
}
...
文檔說我不該」調用loadWindow並且該窗口無論如何調用它,但窗口沒有出現。玩弄了一會兒後,我能夠通過添加屬性來實現文件來解決這個問題,具體如下:
#import "MainView.h"
#import "AboutWindowController.h"
@interface MainView
@property (strong, nonatomic) AboutWindowController *aboutWindowController;
@end
@implementation MainView
-(id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
_aboutWindowController = [[AboutWindowController alloc] initWithWindowNibName: @"AboutWindowController"];
[_aboutWindowController window];
...
}
return self;
}
...
我不知道爲什麼加入固定的一切財產。有人能爲我闡明這一點嗎?
Got it!我有一種感覺,這與ARC清理事情有關。爲了將來的參考,是否有一種簡單的方法來測試以查看對象是否正在實例化或清理?我相信我會再次遇到這樣的問題。 – Connor
沒有編程方法來測試指針是指向一個真實的對象還是它是懸掛的。你可以在你的類中重寫'-dealloc'並讓它記錄一條消息。您可以在Allocations模板下運行您的應用程序,並查看您的班級實例已完成了哪些工作,以及是否有任何工作仍處於「現場」狀態。 –