2012-03-01 117 views
0

這裏怪現狀是我AppDelegate.h(我已經在Appdelegate.m合成這種特性)與委託

{ 
    NSString *uName; 
    NSDictionary *messagesDict; 
    NSString *serve1r; 
    NSDictionary *firstGet; 
} 
@property (strong, nonatomic) UIWindow *window; 
@property (copy, readwrite) NSString *uName; 
@property (copy, readwrite) NSString *serve1r; 
@property (retain, nonatomic) NSDictionary *firstGet; 

我有樹視圖控制器,通過一個文本框我輸入一些用戶的相關信息,並希望分享這些對象(用戶名,服務器IP ..)在其他視圖控制器中。 我在其他類(SecondVC和ThirdVC)像下面assing新的變量:

MyDelegate *sharedDa= (MyDelegate *)([[UIApplication sharedApplication]delegate]); 

在該點之後,我可以看到UNAME在第二類(日誌,或對電子文本框顯示),但我不能看到第三類中的任何東西。我的代碼有什麼問題,任何人都可以幫忙?

+0

例如,在FirstVC中,我將用戶名和服務器設置爲: sharedData.serve1r = _server.text; sharedData.uName = _username.text;但在第二類,我不能得到服務器的價值(我稱他們爲:[sharedDa uName],[sharedDa serve1r])。通過這樣做,我可以得到_username.text的值,但_server.text來作爲零(我的意思是,[sharedDa serve1r]是空的) – 2012-03-01 13:49:31

回答

0

大概另一類是不實際進口MyDelegate.h

+0

:)不,這是不正確的。我不想用很多代碼搞亂人們的思想,但是這樣的事情沒有任何問題 – 2012-03-01 13:25:38

+0

而且我認爲這是因爲複製/讀寫/保留..類似的東西。但我無法確定 - 也無法完全實現 – 2012-03-01 13:27:45

1

這取決於你如何在你的視圖控制器設置該屬性,因爲副本屬性,你會使用特定類型的setter /吸氣劑。 (請看這裏:NSString property: copy or retain?

我建議你使用(強,非原子),所以你會一直保留指向同一個對象的指針。 (當然 - 如果 - 應該是 - appDelegate實例始終是相同的)