總之,怎麼樣?調用實例方法的實例方法調用實例方法
我有一個視圖控制器,創建一些自定義對象。其中一個對象需要在控制器中調用一個方法。該對象看起來像它想要在控制器中調用一個類方法,這可能很好,除非控制器中的類需要調用控制器中的實例方法,而且似乎不想這樣做。那有意義嗎?
如果不是,這裏是僞代碼:
ViewController.m
#import "customObj.h"
-(void)viewDidLoad{
[email protected]"string";//declared in ViewController.h
}
-(void)createObj{
[email protected]"different string";
customObj *customObjInstance=[[customObj alloc] init];
}
---
customObj.m
#import "ViewController.h"
-(void)callBack{
[ViewController createObj];
}
好了,所以回調運行時,它的錯誤,說這是找+ CREATEOBJ(不-createObj)。我可以將createObj更改爲一個類方法,但是它有一個設置foobar的問題,因爲foobar是在-viewDidLoad中初始化的,我無法將其更改爲+ viewDidLoad。我可以將foobar移動到一個類的方法中,但是我怎麼稱呼它呢?取而代之的是,我是指[ViewController ...]?我不認爲這是有效的。
我的猜測是我錯過了一些基本的概念,它並不像我做的那樣困難。我非常感激任何能夠讓我擺脫困境的人。
非常感謝。
嗯...謝謝。過去我已經通過了指針,看起來像這樣的一個聲音,我無法想象這是做到這一點的正確方法。 因此,一個對象沒有引用創建它的對象?我曾經使用的其他語言具有與父對象的超類不同的「父」。如果我有一個創建一個uitableview對象的uiview對象,那麼這個tableview對象沒有任何對它產生的uiview實例的引用?這個遺漏是我不斷遇到的。 再次感謝。 – 2009-07-08 03:50:49
視圖具有「superview」的概念,這是它們所包含的視圖 - 但沒有「創建對象」的一般概念。通常,您決定控制器對象與模型對象有什麼關係。舉例來說,你可能會認爲一個customObj實例需要另一個對象來爲它創建更多的對象,並且你可以使用一個委託來建模(這是一個指向另一個對象的指針,但更多通用)。 有很多種方法可以做到,最好的方法取決於你的具體情況。 – 2009-07-08 03:56:31