例如,如果我在课程中创建UILabel,我该如何在任何地方使用它?
我已经知道如何在两个班级之间分享。但是我需要在所有类中调用对象的值。有可能吗?
答案 0 :(得分:1)
单身是你想要的吗?基本上,单例只是一个只返回相同实例的类,无论如何。这是一个网站,向您展示如何做到这一点。 http://funwithobjc.tumblr.com/post/3478903440/how-i-do-my-singletons
答案 1 :(得分:0)
最好的方法是将它写入临时文件文件夹,如下所示:
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];
答案 2 :(得分:0)
你问过“我需要在所有课程中调用一个对象的值。这可能吗?”并提到了UILabel。
您应该避免在其他视图层组件上查看视图层组件。它创建耦合使得它(1)真的很难改变 - 简单的改变以不可预测的方式破坏代码的大部分区域(参见上面的参考spaggeti代码)和(2)难以测试,因为系统中没有层。
你应该研究MVC的原理。在MVC中,您有视图,控制器和模型。你应该尽量减少。多个视图和控制器可以在控制数据和业务逻辑的同一模型上运行。
模型是您对数据执行的数据和操作。让所有不同的视图都能解决这些数据,而不是互相攻击。
我建议创建一组模型类,并允许对该模型的公共访问。一个常见的模式是该类是单身。
所以,多个视图&控制器会这样做。
MyModel * model = [MyModel sharedInstance]; 然后可以对多个控制器进行操作。
这是一篇关于这个主题的好文章:http://cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html
希望有所帮助。