2011-09-22 55 views
0

我目前正在爲iPhone開發一個應用程序。 appdelegate在我緩存數據(例如NSDictionary)時顯示一個閃屏,以便在某個視圖中使用。從我需要的視圖中調用這些數據的最佳方式是什麼?我不認爲將它作爲一個變量從視圖傳遞到視圖直到它到達視圖是一個正確的方法來做到這一點。在整個應用程序中共享對象

應用程序委託(具有應將數據緩存到NSDictionary的閃屏) | 查看A | SubView | 最終視圖(在這裏我想用緩存的數據)

感謝:-)

+1

您可以使用NSCache。看看[如何使用NSCache] [1]。 [1]:http://stackoverflow.com/questions/5755902/how-to-use-nscache – lluismontero

回答

1

如果你正在緩存數據的應用程序委託的伊娃,你可以從任何地方訪問它的NSDictionary的您的應用使用以下行:

myAppDelegate *delegate = (myAppDelegate *)[[UIApplication sharedApplication] delegate]; 
NSDictionary *myData = [delegate cachedData]; 

希望能回答你的問題。

0

如果你有一個永遠不會在應用程序的整個生命週期中被釋放的對象,並且真的希望它可以從應用程序的任何地方訪問(比如說,以便從代碼中絕對的任何地方簡單地調試NSLog可以打印它的狀態),那麼這就是全局變量的用途。只需指定一個全局變量並引用該對象即可。如果您不介意生成幾乎等效但顯微鏡速度較慢和較大的代碼,請將其分配給應用程序委託中的實例變量並使用適當的getter。

請注意,使用全局變量是對封裝的違反,這種封裝不會非常具有可伸縮性,可維護性或適用於單元測試,但完全適用於比大多數對象封裝要小的應用程序。

相關問題