我在Objective C中傳遞參數時遇到問題。這裏是我的情況:Objective C:實例變量作爲參考
我有一個根控制器(主屏幕)。在它的視圖中有一個ScrollView,它包含3個視圖(接下來的3個控制器)。您可以水平地滾動它,並且這些ScrollView中的3個視圖正在改變。接下來,我有一個與某些硬件進行通信的對象。有一個會議和進出流。這個對象接收一些數據,我需要在視圖中顯示這些數據(根視圖和滾動視圖中的3個視圖)。此外,根控制器和這3個控制器有時需要一些數據。
這意味着通信對象必須具有所有控制器的實例將它們直接發送數據。但控制器必須有通信對象的實例才能夠請求數據。
我想是這樣做的:根控制器及其子視圖創建3個控制器(滾動型),並告訴他們。它還創建通信對象並將這3個控制器發送給這個對象(由ref)。並且還發送給通信對象的每個控制器實例。在這種情況下,通信對象可以直接向控制器發送數據,控制器也可以直接請求數據。
通常我用C#這樣的參考參數傳遞的工作是沒有問題的,但它似乎在目標C是不可能的。當我想發送引用時,它會創建一個副本併發送它,所以我有兩個副本的對象,我不想要它。我想引用一個對象。我試圖發送一個指針 - (UIViewController **)controller
,但它似乎不工作。
你能告訴我應該怎麼解決這個問題?接下來的想法是,根控制器創建3個子控制器和一個通信對象。該通信對象將向根控制器發送消息,並將該消息轉發給右側控制器。子控制器將向根控制器發送消息,並將其轉發給通信對象。
你絕對可以**使用指針**效仿引用。在什麼意義上「不起作用」? – 2013-08-27 11:26:28
顯示創建不需要的副本的一些代碼。假設你知道你在做什麼,應該沒有問題來處理指針。無論如何,對象的引用基本上都是一個指針。不過,我強烈建議熟悉委託模式並應用它。 –