2013-06-25 208 views
-2

您好我有一個關於通過NSobject將變量傳遞到rootviewcontroller的問題。傳遞變量

我有2個.h和.m文件(稱爲viewcontroller.m/h和secondviewcontroller.m/h)。

下面是我想要做的一個小例子。

secondviewcontroller.m

- (的NSString *)的MyString {

回報@ 「這是一個字符串」;

}

secondviewcontroller.h

@interface SecondviewController:NSObject的

- (的NSString *)的MyString;

@end

我怎麼能夠這個變量傳遞到viewcontroller.m?

我已經讀了很多關於谷歌,但大多數地方錯的實現或我的研究就是壞的xD

+1

你能澄清你在問什麼嗎?在一般意義上,有很多方法可以做你想做的事。代表,或者如果第二個是第一個成員變量,那麼它可以簡單地調用它。我在這裏評論的主要原因是問這些實際上是否應該成爲uikit中的視圖控制器?如果是這樣,你應該從UIViewController派生而不是NSObject。 –

回答

2

我怎麼能夠這個變量傳遞到viewcontroller.m?

您實際上並未向我們展示任何變量; -myString返回一個常量字符串。另外,請記住,viewcontroller.m只是一個實現文件。考慮與彼此進行通信的對象比與另一個源進行通信的對象更好。我與你交流,但我的DNA不會與你的DNA聯繫。

無論如何,它聽起來像是在問一個對象如何與另一個對象進行通信,而答案只不過是對話中至少有一個對象需要知道另一個對象。因此,viewcontroller類的一個實例可能會從某個其他對象獲得指向secondviewcontroller實例的指針,或者它可能會自己創建一個新實例。在viewcontroller.m代碼的某些部分可能看起來像:

secondviewcontroller *svc = [[secondviewcontroller alloc] initWithNibName:nil bundle:nil]; 
NSString *someString = [svc myString]; 

這不是一個特別現實的例子,但也不是你所提供的樣品。雖然這個教訓是一樣的 - 對象通過相互發送消息進行通信,並且對象需要對另一個對象的引用才能發送該消息。弄清楚哪些對象應該知道哪些對象,他們如何發現對方以及他們發送給對方的消息正是面向對象編程的業務。在面向對象中,真正重要的不是對象本身,而是它們如何相互關聯。這一切都是關於您使用對象作爲構建塊創建的結構。

+0

謝謝,我仍然認識到這一點,並仍處於學習階段。你的故事讓我看起來更清晰 –