我正在使用 Singleton Class 来共享从 web 服务获取的大量数据以进行处理,这在我以前的应用程序中也做过。但是对于新的 ios 4.2 它不起作用,我无法理解它不起作用的原因,因为它与新的 api/frameworks 无关。
这是我的单身人士的代码:
@interface SingleTon : NSObject {
NSMutableArray *hname;
}
+ (SingleTon *) sharedInstanceHname;
//hname
-(NSMutableArray *) getHname:(NSMutableArray *)x;
-(void) setHname:(NSMutableArray *)x;
.m 类:
@implementation SingleTon 静态 SingleTon *_sharedInstanceHname;
- (id) init
{
if (self = [super init])
{
// custom initialization
//memset(board, 0, sizeof(board));
hname = [[NSMutableArray alloc] initWithObjects:@"NO RESULT",nil];
index =1;
}
return self;
}
+ (SingleTon *) sharedInstanceHname
{
if (!_sharedInstanceHname)
{
_sharedInstanceHname = [[SingleTon alloc] init];
}
return _sharedInstanceHname;
}
- (NSMutableArray *) getHname:(NSMutableArray *)x
{
return hname;
}
- (void) setHname:(NSMutableArray *)x
{
hname = x;
}
在我的第一个视图中,我如何使用 Singleton 来存储价值:
SingleTon *sname = [SingleTon sharedInstanceHname];
[sname setHname:hname];
这是我在第二个视图 viewDidLoad 方法中访问此设置值的方式:
SingleTon *places = [SingleTon sharedInstanceHname];
NSLog(@"%@", [places getHname:getname]);
我尝试了所有可能的保留释放,但没有用……是的,错误也不同……有时是“EXC_BAD_ACCESS”,有时是其他