Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 单例更改不会保留到下一个视图_Iphone_Ios_Singleton_Global Variables - Fatal编程技术网

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;
}