2011-12-07 38 views
-1

我對ios非常陌生。應用程序問題代表它釋放變量

我想學習appDelegate方法在我的應用程序中傳遞數據。當我設置變量(appDelegate變量)的值時,它在@時間點 處設置它,但是經過2個步驟後,它將其顯示爲超出範圍。 在檢索它,當我做到這一點

myAppDelegate *appDelegate = (myAppDelegate *)[[UIApplication sharedApplication] delegate];  
    myClass *my = [appDelegate.myclass objectAtIndex:0]; 

說這句話給我的幾個myClass的財產的。(使用斷點&的ramdom就像有時第一和第二下一次它是第三個選中)。

有誰知道我錯過了什麼? 謝謝你的幫助! :)

+0

你能提供更多細節嗎? appDelegate.myclass如何定義?有時調試器很難顯示可變內容,當你用NSLog打印變量內容時會發生什麼? – talkol

+0

我使用了一個斷點來檢查它是否具有正確的值。 UserProfile * up = [[[UserProfile alloc] init] initWithUsername:un password:pd address:ad zipcode:zip email:em emailSetting:es calenderSetting:cs]; [self.userprofile addObject:up]; self.userprofile是我的變量。 up變量非常好! – StackFlowed

+0

你能給我發送更多關於你的問題的細節... –

回答

0

你不能總是相信調試器很好地向你展示可變內容。如果調試器說,這是不是在範圍,試圖打印出變量的內容到控制檯:

NSLog(@"%@", [appDelegate.myclass objectAtIndex:0]); 

只有當這個崩潰/失敗,你有一個實際的問題。

+0

nslog的輸出是 ...這意味着它獲得了一些內存分配,但是我無法讀取它的內容! – StackFlowed

+0

這看起來像你沒有問題。 NSLog無法打印出每種類型的對象。如果您在UserProfile內部有任何字符串成員,您可以嘗試將其打印出來以便確定 – talkol

+0

您是否可以指向項目中的相關文件?這是相當大的:) – talkol

0

試試這個。

if([appDelegate.myclass objectAtIndex:0]!=nil) 
{ 
     //Do your Code 
} 
Else 
{ 
     //No Values 
} 
+0

我試過它在if部分!你能提出更多的建議嗎? – StackFlowed