2012-12-07 66 views
0

菜鳥問題: 我有我的ViewController.m變得相當大。將某些(通用)代碼「卸載」到另一個點文件(我們稱之爲myStuff.m)的方式是什麼?iPhone:如何從另一個.m文件訪問方法,變量,項目

或者重新表述的問題:

  1. 我如何調用一個方法從另一個.m文件,
  2. 我如何可以訪問的變量,
  3. 我如何訪問一個元素(的UIView)另一個.m文件。

例: 在myStuff.m我要做到以下幾點:

[ViewController ViewController_Method:@"bla"]; 
yLocal = ViewController.xRemote; 
[ViewController.myText setText:@"bla-bla"]; 

什麼代碼我必須添加到我ViewController.m以及應該如何myStuff.m被建立去做吧? 做什麼(最簡單的)?

+0

我說這是一個「菜鳥問題」!我沒有意識到,只有專家纔可以在這裏提問...(至少其他2,發佈了一些有用的東西) – Gik

回答

1

變量

聲明公共變量

@property(nonatomic,strong) VariabledatType *myVariablename; 

方法

聲明公用方法

-(void)myPublicMethod:(NSString *)perameterString; 

從另一個類訪問

讓我們考慮的變量和方法的Class1

Class1Obj.myVariablename //Accessing variables; 

Class1Obj.myVariablename = someValuel; //setting values to variables; 

[Class1Obj myPublicMethod:@"myString"]; //calling Methods; 
+0

嗯...我添加了 - (void)myPublicMethod:(NSString *)perameterString;在Class1Obj.h文件中,我添加了#import「Class1Obj.h」到我的myStuff.m文件中,但仍然沒有任何內容......它說「沒有已知的選擇器類方法'myPublicMethod'」 – Gik

+0

更新:通過搜索,我發現,如果我改變我的方法從 - (void)myPublicMethod:(NSString *)perameterString;到+(void)myPublicMethod;有用。這不是我想要的,但它編譯。 (再次,正如我所說,我是新來的,所以也許我在這裏明確表示......) – Gik

+0

嗯,我終於找到了它(不要感謝(其他評論))。我不得不打電話給myPublicMethod:像這樣[appDelegate。viewController myPublicMethod:@「bla」]; appDelegate定義如下:AppDelegate * appDelegate =(AppDelegate *)[[UIApplication sharedApplication] delegate]; – Gik

1

的部分聽起來好像是你需要做一些閱讀學習Objective-C,對象設計和模型視圖控制器( MVC)。

這裏的一些鏈接

Objective-C tutorial

MVC

Design Fundamentals

退房的iOS開發(保羅·赫加蒂)在斯坦福大學的演講,以及 - 他們都是優秀的。

+0

(感謝您的鏈接,它們作爲參考很好,但對我的情況不是很有幫助。) – Gik

相關問題