我想要一个数组从一个类中获取数据,以便在具有相同数据的另一个类中对我有效。
如果我们在applicationDelegate类上声明一个数组。
然后在两个类中声明applicationDelegate的一个对象。
并将数组从一个类分配到appDelegate.array,我将能够获得跨类的数组?如何在两个类之间共享数组?
回答
我与迈克。离开App Delegate。
你在控制何时以及如何实现对象。在创建相关类的实例时,如果多个类能够访问相同的数据,交出数据或获取数据的方法很重要。
一个例子,给出类WVParent和WVChild。
WVParent有一个属性,的someArray,这是阵列的其他对象需要:
@interface WVParent : NSObject {
NSArray *someArray
}
@property (nonatomic, retain) NSArray *someArray;
@end
然后你有WVChild,它本身有一个名为parentObject属性:
@class WVParent;
@interface WVChild : NSObject {
WVParent *parentObject;
}
@property (nonatomic, assign) WVParent *parentObject;
@end
假设父正在创建子实例,您将分配它并分配父代:
WVChild *child = [[WVChild alloc] init];
child.parentObject = self;
那么孩子实例可以通过访问的someArray:
self.parentObject.someArray
这仅仅是一个选项。您也可以将数组本身传递给孩子,假设数据是静态的,并且在应用程序会话过程中不太可能发生变化。
通过这种方式,我们不再需要在App Delegate中存在数据源,而是生活在一个更适合其创建,维护和自动售货的类中。如果您的课程已经存在并且只能通过获得应用程序委托才能访问其他应用程序,那么您可能需要考虑一下您的架构。
更多的依赖注入这里:
是的,你可以在你的applicationDelegate
类中声明一个成员/属性,尽管你应该尝试遵循单一责任原则,并确保你不会在你的应用程序委托中填充大量其他共享的东西(这会发生很多与iPhone代码)。
另一种方法是在创建对象的构造函数时将数组注入到对象的构造函数中。
很难知道设计方面的最佳解决方案,而不知道这些数据是什么以及它的真正属性。
我试图用一个正常的变量。但即使它不工作。 – wolverine 2009-12-11 13:26:28
- 1. 在两个类之间共享数据
- 2. 如何在两个类之间共享单个关键部分
- 3. 如何在两个类之间共享一个变量?
- 4. 如何在两个子Angular2组件之间共享父HTML?
- 5. 如何在两个类方法之间共享对象
- 6. 如何在两个成员函数之间共享一个QListIterator?
- 7. 如何在两个数据库之间共享(使用)数据?
- 8. 如何在组件之间共享ContextMenu
- 9. 如何在两个进程之间共享数据
- 10. 如何在两个表单之间共享整数声明?
- 11. 如何在两个winform应用程序之间共享数据?
- 12. 如何在AngularJS的两个模块之间共享数据?
- 13. 如何在两个模块之间共享数据库模型?
- 14. 在两个webapps之间共享Ehcache
- 15. 在两个winforms之间共享变量
- 16. 在两个线程之间共享QAxObject?
- 17. 在类之间共享ListView
- 18. 在两个共享对象之间共享变量
- 19. KineticJS在两个组之间共享一个对象
- 20. 如何在C#中不同类的两个线程之间共享数据#
- 21. 在两个类之间使用按钮共享一个方法
- 22. 在两个Visual Studio项目之间共享一个类
- 23. 如何在两个nib文件之间共享一个NSArrayController?
- 24. 如何在两个商店之间共享一个AJAX呼叫?
- 25. 如何在两个活动之间共享一个视图?
- 26. Angular2在组件之间共享数据
- 27. 在Angularjs组件之间共享数据
- 28. 在类对象之间共享数据
- 29. 在类之间共享数据
- 30. 如何在iPhone之间共享数据?
我“失踪”在child.parentObject:self; – 2011-03-21 07:26:52
这真是愚蠢的我。该:应该是一个=符号。固定。 – 2011-03-21 20:21:43
谢谢:)好吧,我明白了,但很高兴看到我做了正确的事情...... – 2011-03-21 22:28:23