Iphone 单例更改不会保留到下一个视图
我有一个单例类,我打算在整个应用程序中与大家分享。 看起来是这样的:Iphone 单例更改不会保留到下一个视图,iphone,ios,singleton,global-variables,Iphone,Ios,Singleton,Global Variables,我有一个单例类,我打算在整个应用程序中与大家分享。 看起来是这样的: PersonalGlobal *sharedPersonal = [PersonalGlobal sharedPersonal]; //Setting some textfield sometextfield.text = sharedPersonal.firstName; m h 但当我更改视图并尝试访问以下字符串时: PersonalGlobal *sharedPersonal = [Pe
PersonalGlobal *sharedPersonal = [PersonalGlobal sharedPersonal];
//Setting some textfield
sometextfield.text = sharedPersonal.firstName;
m
h
但当我更改视图并尝试访问以下字符串时:
PersonalGlobal *sharedPersonal = [PersonalGlobal sharedPersonal];
//Setting some textfield
sometextfield.text = sharedPersonal.firstName;
我什么也得不到。我已经在所有文件中导入了“PersonalGlobal.h”。
我可以以任何方式将更改提交给singleton类吗
有人能看出我做错了什么吗?
谢谢 您的单例实现看起来不错。如果在本例中,您为设置
名字而编写的代码从未执行,我也不会感到惊讶。如果我是你,我会一步一步地检查代码。你的实现看起来不错。如果您的单例只返回一个实例,这应该是可行的。因此,您的sharedPersonal
方法存在疑问。只要试着在这个方法中添加断点,看看它是否每次都在创建一个新实例
如果没有,您也可以尝试以下方法:
+(SingleTon *)getSharedInstance
{
static PersonalGlobal *sharedPersonalGlobal = nil;
if (sharedPersonalGlobal==nil)
{
sharedPersonalGlobal=[[PersonalGlobal alloc]init];
}
return sharedPersonalGlobal;
}
这是我的工作代码。行将被执行,只需检查是否仅使用firstName属性,或所有其他属性?对于大多数属性,尚未实现所有属性,yetI将释放IVAR并重试。而不是使用“id”检查此+(PersonalGlobal*)sharedInstance{static PersonalGlobal*_instance=nil;@synchronized(self){if(_instance==nil){_instance=[[super alloc]init];}}}}返回_instance;}
PersonalGlobal *sharedPersonal = [PersonalGlobal sharedPersonal];
//Setting some textfield
sometextfield.text = sharedPersonal.firstName;
+(SingleTon *)getSharedInstance
{
static PersonalGlobal *sharedPersonalGlobal = nil;
if (sharedPersonalGlobal==nil)
{
sharedPersonalGlobal=[[PersonalGlobal alloc]init];
}
return sharedPersonalGlobal;
}