如何创build一个可以从不同的视图控制器访问的NSMutable数组
林iPhone相当新的发展,我想创build一个可变的数组,可以访问和从不同的视图控制器填充 。 我该怎么做? 如果你可以请给我一个示例代码
在大多数情况下,不需要使用全局variables也不会有帮助。 如果你不得不使用它们,最简单的方法是把数组放在你的AppDelegate中。
您可以通过以下方式访问Array(AppDelegate中的命名数组):
YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate]; NSArray *aArray= [appDelegate array];
在MVC中,你有视图,控制器和模型。 你应该尽可能地压低。 多个视图和控制器可以在控制数据和业务逻辑的相同模型上运行。
在你的情况下,你有一个简单的共享数据集 – 一个可变的数组。
我会build议创build一个包含该可变数组并暴露方法的类。 一个常见的模式是该类是一个单身人士。
所以,多个控制器会做。
MyModel *model = [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
希望有所帮助。
在您的@interface YourClass
拒绝数组中:
@property (nonatomic, retain) NSMutableArray *publicArray;
在你的@implementation YourClass
写下这个:
@synthesize publicArray;
如果你将引用yourClassVariable
到那个对象,你可以使用[yourClassVariable publicArray];
来访问这个variables[yourClassVariable publicArray];
或yourClassVariable.publicArray;