如何创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;