2009-02-22 113 views
0

我有一個自定義類,有很多訪問器方法來定製它。我的問題是,如果一個程序員使用這個類,並且不打算爲所有這些方法分配值,因爲他不知道它們或不想打擾,我該如何讓該類假定爲默認視圖?我不能使用awakeFromNib,因爲這會覆蓋比如說,一個AppController awakeFromNib的有目的的定製。在自定義類中設置全局變量的默認值?

任何簡單的方法來做到這一點?

編輯:

在的NSView的類,和定製方法只需修改然後一個實例變量告訴視圖重繪(背景顏色等)。當我沒有明確告訴對象某處爲所有這些自定義分配值時,它將它們設置爲零。我需要將其更改爲假定可用默認值的位置。

+0

你能提供更多的細節嗎?這些屬性如何改變與此控制器相關的視圖? – 2009-02-22 21:19:21

+0

另外,這個類應該是分類的,還是按原樣使用? – 2009-02-22 21:20:16

回答

1

我很困惑你想要做什麼。如果您想爲類成員設置默認值,只是分配給他們在你init方法(S):

- (id) init 
{ 
    if((self = [super init])) 
    { 
     member1 = member1default; 
     member2 = member2default; // etc. 
    } 
    return self; 
} 

- (id) initWithCoder:(NSCoder *)encoder // this is called for objects constructed from a NIB 
{ 
    if((self = [super initWithCoder:encoder])) 
    { 
     member1 = member1default; 
     member2 = member2default; // etc. 
    } 
    return self; 
} 
0

(對不起,我是一個StackOverflow的小白,我似乎不能在別人的答案尚未就此發表評論)

是的,你通常會覆蓋自定義NSView子類中的initWithFrame。請確保你調用父類的initWithFrame:方法方法還有:

self = [super initWithFrame:frameRect]; 

有關加載大量的堆棧幀的錯誤消息,讓我覺得你可能無意中創造了一個無限遞歸循環。但是,沒有看到代碼,我不能肯定地說。

相關問題