如何共享整个项目的对象?(How to share an object with the entir

2019-10-29 04:59发布

例如,如果我在一个类中创建一个的UILabel,我怎么能使用它的地方我想?

我已经知道如何两个类之间共享。 但我需要调用我的所有类对象的价值。 可能吗?

Answer 1:

是你想要的单身? 基本上是一个单身就是一个类只有返回相同的情况下不管是什么。 这里有一个网站,告诉您如何做这些事。 http://funwithobjc.tumblr.com/post/3478903440/how-i-do-my-singletons



Answer 2:

最好的办法是把它写在临时文件的文件夹是这样的:

NSString *pathtmp = [NSTemporaryDirectory() stringByAppendingPathComponent:@"tmpString.txt"];
NSString *stringToWrite = [NSString stringWithFormat:@"%@",Label.text];
[stringToWrite writeToFile:pathtmp atomically:YES encoding:NSStringEncodingConversionExternalRepresentation error:nil];

和阅读:

NSString *pathtmp = [NSTemporaryDirectory() stringByAppendingPathComponent:@"tmpString.txt"];
NSString *stringToWrite = [NSString stringWithContentsOfFile:pathtmp encoding:NSStringEncodingConversionExternalRepresentation error:nil];


Answer 3:

你问的是:“我需要调用我的所有类对象的价值。这可能吗?” 并提到一个UILabel。

你真的应该避免视图层组件在其他视图层组件戳。 它创建连接,这使得它(1)真的很难改变 - 简单的变化打破不可预知的方式代码(见参考文献上面spaggeti代码)和(2)难以测试,因为有一个在系统中没有层的广大地区。

你应该看看MVC的原则。 在MVC中,你有意见,控制器和模型。 你应该推尽可能多的下降成为可能。 多个视图和控制器可以控制数据和业务逻辑相同的模式运作。

该模型是数据和您对数据进行操作。 让你不同的观点工作过的数据,而不是在对方戳。

我建议创建一套模型类,并允许该模型的公共访问。 一个常见的模式是该类是一个单例。

因此,多个视图和控制器会做。

为MyModel *模型= [为MyModel sharedInstance]; 然后多个控制器可以在其上进行操作。

下面是关于这一主题的好文章: http://cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html

单从苹果: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CocoaFundamentals/CocoaObjects/CocoaObjects.html#//apple_ref/doc/uid/TP40002974-CH4-SW32

希望帮助。



文章来源: How to share an object with the entire project?