2011-09-22 58 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。

请注意,使用全局变量是对封装的违反,这种封装不会非常具有可伸缩性,可维护性或适用于单元测试,但完全适用于比大多数对象封装要小的应用程序。

相关问题