Sha*_*awn 10 variables scope global-variables objective-c
我想存储一个数字作为全局变量.我使用什么语法,以及我的应用程序的其他部分如何访问该变量?
Pey*_*loW 26
对于标准全局变量(在终止并重新启动应用程序时不持久),将其添加到您选择的头文件(*.h)中:
extern NSInteger MYGlobalVariable;
Run Code Online (Sandbox Code Playgroud)
然后把它放在实现文件中; (*.m,*.c,*.cpp):
MYGlobalVariable = 0; // Or any other default value.
Run Code Online (Sandbox Code Playgroud)
这就是你如何做面包和黄油的全局变量.
Jul*_*ien 20
您可能希望使用NSUserDefaults:
从代码中的任何位置,您都可以为键设置值:
int userAge = 21; // Just an example
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
if (standardUserDefaults) {
[standardUserDefaults setObject:[NSNumber numberWithInt:userAge] forKey:@"age"];
[standardUserDefaults synchronize];
}
Run Code Online (Sandbox Code Playgroud)
并从任何其他地方取回:
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
NSNumber *age = nil;
if (standardUserDefaults)
age = [standardUserDefaults objectForKey:@"age"];
userAge = [age intValue]
Run Code Online (Sandbox Code Playgroud)
您还可以设置初始值:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDictionary *appDefaults = [NSDictionary
dictionaryWithObject:[NSNumber numberWithInt:13] forKey:@"age"];
[defaults registerDefaults:appDefaults];
Run Code Online (Sandbox Code Playgroud)
此外,如果您有复杂的数据,您可能想要创建一个包含setter和getter的包装器类.
Rav*_*eja 14
在AppDelegate.h文件中定义变量.在.h文件中创建一个属性
@property (retain, nonatomic) NSString *str;
Run Code Online (Sandbox Code Playgroud)
然后在AppDelegate.m文件中合成;
@synthesize str;
Run Code Online (Sandbox Code Playgroud)
稍后在项目prefix.pch文件中定义一个变量
#define DELEGATE ((AppDelegate*)[[UIApplication sharedApplication]delegate])
Run Code Online (Sandbox Code Playgroud)
在项目的任何位置使用该值
AppDelegate *a = DELEGATE;
a.str = @"value";
NSLog(@"value of variable str : %@",a.str);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
66572 次 |
最近记录: |