全局变量?

时间:2010-07-27 06:54:02

标签: iphone objective-c xcode

如何在x-code(iphone)中使用全局变量。例如,假设我想在viewcontroller文件中声明一堆变量(NSStrings),那么我将如何在不同的类中访问它们?有人能帮助我吗?

4 个答案:

答案 0 :(得分:2)

全局变量是全局变量。您可以像在任何C程序中一样使用它们,也就是说通常它们会被声明为“globals.h”并在任何需要的地方导入。

话虽如此,依靠全局变量通常是不好的做法。您可能有一个“ApplicationController”对象,它本质上跟踪应用程序的全局状态,但其变量应该是实例变量,并且只能在内部访问,或者通过getter / setter访问。

如果你想在一个对象中声明一串字符串以供许多其他对象引用,通常你会使该对象成为一个Singleton并将对它的引用传递给需要访问它的每个对象。

但是,你需要问自己为什么你需要这样做,如果没有更好的方法。我敢打赌美元到甜甜圈,这不是你想要做的事情的充分理由。

向我们提供一些更详细的信息,说明这些字符串是否具有全局性的最重要的需求,然后我们可以向您展示其原因。 :)

答案 1 :(得分:0)

如果它没有被过度杀死,你可以使用singleton。另一种选择是NSDefaults。当然,最简单的方法就是在.h

中定义一个extern
  extern NSString * const STR_1;

和.m:

中的值
  NSString * const STR_1 = @"String One";

答案 2 :(得分:0)

只需在.h文件中声明变量,然后在要使用它的任何类中导入此文件。您可以将任何类型的对象或变量设为全局。

答案 3 :(得分:0)

如果在委托中声明变量,则可以使用setter和getter方法访问任何其他控制器中的变量。

请参阅Warrior Answer

我希望,它会对你有帮助。