0

我的應用程序使用UINavigation控制器,最終將數字數據顯示給用戶。UINavigationController - 後退按鈕導致數據損壞

問題是,如果用戶直接前進到計算屏幕而沒有點擊後退按鈕,計算將是正確的。如果後退按鈕在任何時候被擊中,即使在執行了計算後,其中一些值也會被破壞。

例如,第一次運行時,用正確的值:

2011-06-17 23:52:16.644 BlahBlah [19690:207] A = 146.000000 and B = 6.000000 

而結果,如果後退按鈕已經在任何時候在節目中遭到重創:

2011-06-17 23:54:05.888 BlahBlah [19690:207] A = 146.000000 and B = 4.012038 

該值將保持即使在後續的重新計算中也會損壞,並且只有當程序完全重新啓動時纔會消失(即,我必須在Xcode中重新生成並重新運行)。

我通常使用腳本語言編寫,所以我認爲這是一個內存管理問題,這是由於我對Obj C缺乏經驗。然而,我深入瞭解代碼,確保每個alloc/new都具有一個發佈等。我運行了調試器,它沒有任何可以告訴我這部分代碼的內容。我完全停留在這一點上。

我的問題 - 我做錯了什麼,我該如何解決這個問題?

任何協助讚賞。

更多信息 - 這是我如何傳遞變量。 myProfile是具有屬性A和B的對象的實例,它們是雙打的。

CalculateView *CalculateView = [[CalculateView alloc] initWithNibName:@"Calculate" bundle:nil]; 
CalculateView.myProfile = myProfile;  
[self.navigationController pushViewController:CalculateView animated:YES]; 

我還應該提到A和B的值是從plist中加載的。

+0

你能否提供更多的信息,比如你是如何通過周圍的計算值,是他們創造了在那裏和你存儲它們或任何重置呢? – Luke

+0

我們很難識別代碼中看不到的問題。 – Jonah

+0

感謝您的回覆 - 根據要求添加了進一步的信息問題! – veecizzle

回答

0

它應該是這樣的

CalculateView *CalculateView = [[CalculateView alloc] initWithNibName:@"Calculate" bundle:nil]; 
CalculateView.myProfile = myProfile;  
//wrong code -- Where is Create1? 
[self.navigationController pushViewController:Create1 animated:YES]; 
//right code 
[self.navigationController pushViewController:CalculateView animated:YES]; 
+0

感謝Rahul的回答。你是對的 - 那裏的變量名稱不匹配。但是,這是因爲爲了清晰起見,我更改了變量名稱 - 我錯過了一個(他們在我的實際代碼中都被稱爲「Create1」)。 – veecizzle

相關問題