在IOS应用程序中存储全局对象?

在IOS应用程序中存储全局对象?,ios,Ios,我正在开发一个ios应用程序,在第一个viewcontroller中,要求用户提供其名称、性别、年龄和母语。然后我会在整个应用程序中使用这些对象。那么,存储对象以便从所有类轻松访问它们的最佳方法是什么呢 您可以为此使用单例。这样的类只能有一个对象,您可以从应用程序中的任何位置访问它。 看看这个问题: 您只需更改isMultiplayer属性即可满足您的需要。使用。使用非常简单,可以从应用程序中的任何位置访问 您应该使用它来存储用户首选项。它可以存储简单的数据类型以及复杂的对象,甚至可以存储数组、

我正在开发一个ios应用程序,在第一个viewcontroller中,要求用户提供其名称、性别、年龄和母语。然后我会在整个应用程序中使用这些对象。那么,存储对象以便从所有类轻松访问它们的最佳方法是什么呢

您可以为此使用
单例
。这样的类只能有一个对象,您可以从应用程序中的任何位置访问它。
看看这个问题:

您只需更改
isMultiplayer
属性即可满足您的需要。

使用。使用非常简单,可以从应用程序中的任何位置访问

您应该使用它来存储用户首选项。它可以存储简单的数据类型以及复杂的对象,甚至可以存储数组、字典。存储任何密钥都很简单

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:firstName forKey:@"firstName"];
然后把它读回来

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *firstName = [defaults objectForKey:@"firstName"];
注意:用户默认值存储在plist文件中,并在每次启动应用程序时加载。因此,请注意不要在其中写入太多信息。否则,应用程序加载时间会增加,如果超过看门狗定时器间隔,应用程序将收到
SIGKILL
并崩溃

但在您的情况下,为了存储用户设置,您可以继续使用它


希望有帮助

您可以使appDelegate类中的任何变量extern在项目中的任何位置使用它


extern NSString*passString

创建singleton类,比如MySingletonClass并定义变量。 您可以通过singleton对象从任何类访问变量

// MySingleton.h
@interface MySingletonClass : NSObject

{
    //your global variable here
}

// set property for your variable

+ (MySingletonClass*)sharedInstance; // method for getting object of this singleton class

// In MySingleton.m
//synthesize property for your global variable


+ (MySingletonClass*)sharedInstance
{ 

  if ( !sharedInstance)
  {
      sharedInstance = [[UIController alloc] init];

   }
 return sharedInstance;
}
现在在另一个类中,您可以访问这个变量。 按照以下代码访问MySingletonClass中的变量define

MySingletonClass* sharedInstance = [MySingletonClass sharedInstance]; // get object of MySingletonClass
sharedInstance.yourVariable; // now you can access variable defined in MySingletonClass by this object.

您还可以在AppDelegate中定义全局变量(不推荐)。

创建一个表示以下内容的类:

…名称性别年龄和母语

从用户处获得信息后,创建类的实例(例如,不可变实例),并将其从视图控制器传递给依赖它的其他实现。在某些情况下,您需要创建IVAR或属性来保存此实例


不需要全局设置。

是的,我希望使用NSUserDefaults是上面提到的应用程序的最佳和合适的方式。它非常简单,很容易从应用程序中的任何视图控制器访问数据,没有任何更高的难度。

创建公共类并在其中定义。我想补充一点,用户默认值应该用于-用户默认值!它不应该用作普通程序流的存储容器。