`
iaiai
  • 浏览: 2216138 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

iphone 声明和使用全局变量

 
阅读更多
1、在AppDelegate中声明并初始化全局变量
然后在需要使用该变量的地方插入如下的代码:

//取得AppDelegate,在iOS中,AppDelegat被设计成了单例模式
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
appDelegate.xxx = @"xxx";

//在AppDelegate.h里设置
@interface AppDelegate : UIResponder <UIApplicationDelegate>{
    NSString *name;
}
@property NSString* name;
@end


//在AppDelegate.m里设置
@implementation AppDelegate
@synthesize name;
...
@end

2、使用 extern 关键字
         2.1 新建Constants.h文件(文件名根据需要自己取),用于存放全局变量;
         2.2 在Constants.h中写入你需要的全局变量名,例如:
                  NSString *url;//指针类型
                  int count;//非指针类型
                  注意:在定义全局变量的时候不能初始化,否则会报错!
         2.3  在需要用到全局变量的文件中引入此文件:
                   #import "Constants.h" 
         2.4 给全局变量初始化或者赋值:
         extern NSString *url; 
         url = [[NSString alloc] initWithFormat:@"http://www.google.com"];//指针类型;需要alloc
         extern int count;
         count = 0;//非指针类型
         2.5  使用全局变量:和使用普通变量一样使用。

3、单例的全局访问方法:
@interface MySingleton : NSObject
{
⇒①    NSString *testGlobal;
}

+ (MySingleton *)sharedSingleton;
⇒②@property (nonxxxx,retain) NSString *testGlobal;

@end

@implementation MySingleton
⇒③@synthesize testGlobal;

+ (MySingleton *)sharedSingleton
{
  static MySingleton *sharedSingleton;

  @synchronized(self)
  {
    if (!sharedSingleton)
      sharedSingleton = [[MySingleton alloc] init];

    return sharedSingleton;
  }
}

@end

把①、②、③的地方换成你想要的东西,
使用例:
[MySingleton sharedSingleton].testGlobal = @"test";
分享到:
评论

相关推荐

    iphone全局变量配置

    本文将深入探讨如何在iPhone应用中设置全局变量以及如何访问配置文件。 全局变量是在整个应用程序中都可以访问的变量,适用于存储那些在整个程序生命周期内都需要保持不变的数据。在Objective-C中,你可以通过以下...

    库卡kuka编程PPT学习教案.pptx

    例如,可以使用"DECL GLOBAL INT IPHONE_X"来声明一个全局整型变量IPHONE_X。此外,还可以创建数组,如"DECL INT X[10]","DECL REAL TD[20]"和"DECL BOOL ERROR[10]"。 系统变量以"$"开头,如"$pos_act"表示当前...

    iphone——Swift中文教程完整版

    - **全局变量和局部变量**: 全局变量在整个程序中都可见,局部变量只在其定义的作用域内可见。 - **类型属性**: 属于类型的属性,而不是属于特定实例的属性。 **2.11 方法** - **实例方法**: 作用于实例的方法。 -...

    Objective学习笔记

    - 使用`extern`关键字声明全局变量,使其在多个文件之间共享。 - `static`关键字用于定义局部静态变量,只在定义它的文件中可见。 ### 20. const 和 volatile 关键字 - `const`关键字用来声明不可变的变量。 - `...

    iPhone面试题

    - 了解如何使用Xcode进行编译和调试是成为一名合格的iOS开发者的必备技能。 #### 31. Eclipse与Xcode - **Eclipse**是另一种流行的集成开发环境,虽然主要用于Java开发,但在某些情况下也可能用于Objective-C开发...

    DELPHI 扫二维码 FOR IOS

    3. **Barcode.dpr**:这是 Delphi 应用程序的主程序文件,包含项目的启动点和全局变量声明。在这里,它很可能包含了创建主窗体和初始化 ZBar 解码器的代码。 4. **Barcode.dproj**:这是 Delphi 项目的配置文件,...

    iOS 6 Programming Cookbook

    - **变量作用域**:介绍局部变量和全局变量的作用范围。 - **初始化与赋值**:讲解如何正确初始化和赋值给变量。 8. **Allocating and Making Use of Strings (分配和使用字符串)**(部分章节) - **字符串对象*...

    book developer

    - 可以像其他变量一样声明全局的Blocks。 4. **Blocks与变量:** - Blocks能够捕获外部作用域内的变量,并在其内部访问或修改这些变量。 5. **变量类型:** - 包括自动变量、__block变量等不同类型。 6. **__...

    【20170920】编程1.pptx

    - **变量声明与存储**:`DECL GLOBAL INT IPHONE_X`这种格式用于声明全局整型变量`IPHONE_X`。 - **变量的初始化**:在`DAT`文件中,声明和初始化通常在一行内完成;而在`SRC`文件中,它们分开在两行中。 - **...

    Swift中文版教程

    - **常量和变量**:Swift中的常量使用`let`声明,变量使用`var`声明。 - **注释**:单行注释使用`//`,多行注释使用`/* */`。 - **整数和浮点数**:整数类型包括`Int`、`Int8`等,浮点数类型包括`Double`和`Float`。...

    iOS笔试题.docx

    在全局或静态变量前使用,表示该变量的作用域仅限于当前文件;在类方法前使用,表示这是类方法而非实例方法。 7. `#import`是Objective-C特有的,它处理头文件并避免重复导入,而`#include`是C/C++中的。`@class`...

    iOS常见笔试题.pdf

    @property允许开发者通过声明的方式简化对实例变量的访问和修改过程。此外,@property还包含了一些属性关键字,比如nonatomic,用于非原子性地访问属性,提高性能。 通过这些知识点的详细介绍,可以看出iOS开发不...

    block块精解

    Block的声明通常使用`^`符号,后跟返回类型和参数列表。例如,一个无参数且无返回值的Block声明如下: ```objc void (^myBlock)(); ``` Block的定义则是在声明的基础上添加具体实现的代码: ```objc void (^...

    MVP模式简单案例

    2. **定义接口**:在接口中使用`@GET`, `@POST`等注解定义网络请求方法,参数可以通过路径变量、查询参数或者请求体传递。 3. **实例化服务**:通过Retrofit对象创建接口的实例,此时接口中的方法已转换为可执行的...

    ASIHTTPRequest使用指南中文版

    - 使用`__block`关键字声明请求变量,以避免保留循环。 - 完成和失败块中可以直接访问请求对象及其属性。 #### 四、使用队列 使用自定义的`NSOperationQueue`可以更好地控制请求的执行顺序和资源分配。 **示例代码...

    设计模式面试题

    - 可以使用工厂模式来创建不同品牌的手机对象,比如`iPhone`、`AndroidPhone`、`WindowsPhone`等。 - 通过抽象出一个通用的`Smartphone`接口或基类,使得系统可以根据用户的选择动态创建相应的手机对象。 - 这样不仅...

    《精通iOS开发》第6版.中文完整带书签

    - **变量与常量**:Swift中使用`var`声明变量,使用`let`声明常量。 - **数据类型**:包括整型(`Int`)、浮点型(`Double`)、布尔型(`Bool`)等。 - **控制结构**:支持条件语句(`if`、`switch`)、循环语句(`for`、`...

    eclipse+gradle解决android 65k 方法问题

    `build.gradle` 文件用于定义全局的构建脚本配置,而 `settings.gradle` 文件用于声明所有子项目的名称。 **build.gradle**: ```groovy buildscript { repositories { mavenCentral() } dependencies { ...

    Concurrent Programming in Mac OS X and iOS

    - **全局队列**:由系统管理的队列,根据系统负载自动调整优先级和线程数量。 - **本地队列**:用户自定义的队列,可以指定队列的属性如串行或并行。 - **任务调度**: - **异步调度**:通过`dispatch_async`函数...

Global site tag (gtag.js) - Google Analytics