2013-04-24 51 views
-1

我已经实现的阵列与这样的单方法:实例Ç

.H

#import <UIKit/UIKit.h> 

@interface globaltextarray : NSObject 
+(NSMutableArray*)Text; 

@end 

的.m

#import "globaltextarray.h" 

@implementation globaltextarray 

+(NSMutableArray*)Text { 
    static NSMutableArray *statArray; 
    static dispatch_once_t onceToken; 
    dispatch_once(&onceToken, ^{ 
     statArray = [NSMutableArray array]; 
    }); 
    return statArray; 
} 
@end 

我用它在所述一个形式我有和完美的作品。我想要达到的是以下几点。

在我使用这个globalarray的形式,当我点击一个按钮时,一个新的窗体打开与之前已经打开的窗体相同,但其中的数据不同,然后在第二个窗体刚刚打开我点击一个按钮,同样的故事仍在继续。所以我的问题是这样的:有没有办法使用这个唯一的globaltextarray对象创建多个单例数组,这个对象应该包含不同的数据,当用户从一个窗体导航到另一个窗体时(第二个,第三个等)?

希望你能理解它。任何帮助赞赏。

+1

为什么你会做一个单身数组,如果你可以只使用支持iVar?你在这里招致不必要的开销。 – CodaFi 2013-04-24 01:00:07

+0

感谢您的回应...请给我举个例子吗? – stefanosn 2013-04-24 01:19:29

回答

1

首先阅读大约how-and-when-to-use-singleton-classes and var's

为了实现您的功能,请不要使用单例数组。

你可以做2件事。

第一种方法是,为您的每个表单创建一个属性NSMutableArray并填充它自己的视图加载方法。

@property(nonatomic,strong)NSMutableArray *formDetailsArray 

第二种方式是最坏的情况,建立一个全球NSMutableArray属性你的父母的形式和访问它在你的孩子形式。

父窗体

@property(nonatomic,strong)NSMutableArray *formParentArray; 

[formParentArray addObject:form1childArray]; 
[formParentArray addObject:form2childArray]; 
[formParentArray addObject:form3childArray]; 
[formParentArray addObject:form4childArray]; 

Child1形式

datasource = parentFormObj.form1childArray 

CHILD2形式

datasource = parentFormObj.form2childArray