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应用中设置全局变量以及如何访问配置文件。 全局变量是在整个应用程序中都可以访问的变量,适用于存储那些在整个程序生命周期内都需要保持不变的数据。在Objective-C中,你可以通过以下...
例如,可以使用"DECL GLOBAL INT IPHONE_X"来声明一个全局整型变量IPHONE_X。此外,还可以创建数组,如"DECL INT X[10]","DECL REAL TD[20]"和"DECL BOOL ERROR[10]"。 系统变量以"$"开头,如"$pos_act"表示当前...
- **全局变量和局部变量**: 全局变量在整个程序中都可见,局部变量只在其定义的作用域内可见。 - **类型属性**: 属于类型的属性,而不是属于特定实例的属性。 **2.11 方法** - **实例方法**: 作用于实例的方法。 -...
- 使用`extern`关键字声明全局变量,使其在多个文件之间共享。 - `static`关键字用于定义局部静态变量,只在定义它的文件中可见。 ### 20. const 和 volatile 关键字 - `const`关键字用来声明不可变的变量。 - `...
- 了解如何使用Xcode进行编译和调试是成为一名合格的iOS开发者的必备技能。 #### 31. Eclipse与Xcode - **Eclipse**是另一种流行的集成开发环境,虽然主要用于Java开发,但在某些情况下也可能用于Objective-C开发...
3. **Barcode.dpr**:这是 Delphi 应用程序的主程序文件,包含项目的启动点和全局变量声明。在这里,它很可能包含了创建主窗体和初始化 ZBar 解码器的代码。 4. **Barcode.dproj**:这是 Delphi 项目的配置文件,...
- **变量作用域**:介绍局部变量和全局变量的作用范围。 - **初始化与赋值**:讲解如何正确初始化和赋值给变量。 8. **Allocating and Making Use of Strings (分配和使用字符串)**(部分章节) - **字符串对象*...
- 可以像其他变量一样声明全局的Blocks。 4. **Blocks与变量:** - Blocks能够捕获外部作用域内的变量,并在其内部访问或修改这些变量。 5. **变量类型:** - 包括自动变量、__block变量等不同类型。 6. **__...
- **变量声明与存储**:`DECL GLOBAL INT IPHONE_X`这种格式用于声明全局整型变量`IPHONE_X`。 - **变量的初始化**:在`DAT`文件中,声明和初始化通常在一行内完成;而在`SRC`文件中,它们分开在两行中。 - **...
- **常量和变量**:Swift中的常量使用`let`声明,变量使用`var`声明。 - **注释**:单行注释使用`//`,多行注释使用`/* */`。 - **整数和浮点数**:整数类型包括`Int`、`Int8`等,浮点数类型包括`Double`和`Float`。...
在全局或静态变量前使用,表示该变量的作用域仅限于当前文件;在类方法前使用,表示这是类方法而非实例方法。 7. `#import`是Objective-C特有的,它处理头文件并避免重复导入,而`#include`是C/C++中的。`@class`...
@property允许开发者通过声明的方式简化对实例变量的访问和修改过程。此外,@property还包含了一些属性关键字,比如nonatomic,用于非原子性地访问属性,提高性能。 通过这些知识点的详细介绍,可以看出iOS开发不...
Block的声明通常使用`^`符号,后跟返回类型和参数列表。例如,一个无参数且无返回值的Block声明如下: ```objc void (^myBlock)(); ``` Block的定义则是在声明的基础上添加具体实现的代码: ```objc void (^...
2. **定义接口**:在接口中使用`@GET`, `@POST`等注解定义网络请求方法,参数可以通过路径变量、查询参数或者请求体传递。 3. **实例化服务**:通过Retrofit对象创建接口的实例,此时接口中的方法已转换为可执行的...
- 使用`__block`关键字声明请求变量,以避免保留循环。 - 完成和失败块中可以直接访问请求对象及其属性。 #### 四、使用队列 使用自定义的`NSOperationQueue`可以更好地控制请求的执行顺序和资源分配。 **示例代码...
- 可以使用工厂模式来创建不同品牌的手机对象,比如`iPhone`、`AndroidPhone`、`WindowsPhone`等。 - 通过抽象出一个通用的`Smartphone`接口或基类,使得系统可以根据用户的选择动态创建相应的手机对象。 - 这样不仅...
- **变量与常量**:Swift中使用`var`声明变量,使用`let`声明常量。 - **数据类型**:包括整型(`Int`)、浮点型(`Double`)、布尔型(`Bool`)等。 - **控制结构**:支持条件语句(`if`、`switch`)、循环语句(`for`、`...
`build.gradle` 文件用于定义全局的构建脚本配置,而 `settings.gradle` 文件用于声明所有子项目的名称。 **build.gradle**: ```groovy buildscript { repositories { mavenCentral() } dependencies { ...
- **全局队列**:由系统管理的队列,根据系统负载自动调整优先级和线程数量。 - **本地队列**:用户自定义的队列,可以指定队列的属性如串行或并行。 - **任务调度**: - **异步调度**:通过`dispatch_async`函数...