我有2個班geoViewController
和geoMainViewController
目標C - 從另一個類
調用方法我在geoMainViewController
的方法稱爲getFoo
它看起來像這樣:
- (NSString *)getFoo
{
NSString* foo = @"This is foo";
return foo;
}
我想從geoViewController
類呼叫getFoo
。
我在我的geoViewController
m文件中有#import "geoMainViewController.h"
。
我試圖實例化geoMainViewController
類並調用從viewDidLoad中的getFoo
方法在我geoViewController
類是這樣的:
- (void)viewDidLoad
{
[super viewDidLoad];
geoMainViewController* mainVC = [[geoMainViewController alloc] init];
NSString* myFoo = [mainVC getFoo];
}
好像被實例化geoMainViewController
類不錯,但我正在上NSString* myFoo = [mainVC getFoo];
錯誤
的錯誤是 - 對「geoMainViewController」不可見的@interface聲明選擇「的getFoo」
我河畔e我錯過了一個步驟,因爲我對Objective C非常陌生,我只是不確定我做錯了什麼。
對此的任何幫助將是偉大的。
謝謝!
雖然這裏有更多的險惡, OP似乎並不理解你不應該創建視圖控制器的實例,該視圖控制器沒有連接到視圖層次結構,以便只調用一個方法。 – trojanfoe 2013-02-27 07:42:40
同意。應該使用實例變量,並且viewDidLoad方法不應該是視圖控制器初始化的位置。 – erran 2013-02-27 07:44:32
我正在回答所問的問題。如果我必須用命名約定,MVC實踐,糾正'UIViewController'實現等來圍繞我的問題,我會建議盯着整個iOS開發。 – graver 2013-02-27 07:47:27