我们如何在Xcode中创建整数类型的全局变量

时间:2011-11-18 09:33:09

标签: xcode global-variables

如何在Xcode中声明一个全局变量,它的数据类型应该是整数,并且每个类都可以访问。

2 个答案:

答案 0 :(得分:4)

在一些非常特殊的情况下,真正的全局变量可以简化事情。我认为你没有详尽地研究这个问题,但无论如何,这是我的答案,一个简单的案例:


// Globals.h
#ifndef Globals_h
#define Globals_h

extern NSInteger globalVariable;

#endif

// main.m 

NSInteger globalVariable;

int main(int argc, char *argv[])
{
   globalVariable = <# initial value #>;
    ...
}

// Prefix.pch

#ifdef __OBJC__
    #import 
    #import <Foundation/Foundation.h>
    #import "Globals.h"
#endif

现在,您可以在代码中的任何位置使用globalVariable,甚至不需要包含头文件。

警告:如果您需要线程安全或不同的变量类型,事情会稍微复杂。

答案 1 :(得分:-2)

您可以在AppDelegate中使用全局变量:

@interface myAppDelegate : NSObject <UIApplicationDelegate> {
   MyDBManager *myDBManager;
}
@property (nonatomic, retain)  MyDBManager *myDBManager;

@end

@interface AnyOtherClass :  UITableViewController {
   MyDBManager *myDBManager;
   NSObject *otherVar;
}
@property (nonatomic,retain)   MyDBManager *myDBManager;
@property (nonatomic,retain)   NSObject *otherVar;
@end

//getting the data from "global" myDBManager and putting it into local var of AnyOtherClass
- (void)viewWillAppear:(BOOL)animated {
   //get the myDBManager global Object
   MyAppDelegate *mainDelegate = (MyAppDelegate *)[[UIApplication sharedApplication]delegate];
   myDBManager = mainDelegate.myDBManager;
   }


-  (void)dealloc {
       [otherVar release];
        //[dancesDBManager release]; DO NOT RELEASE THIS SINCE ITS USED AS A GLOBAL VARIABLE!
        [super dealloc];
        }

希望它会有所帮助