Object-C技术学习,更多资源请访问 https://www.itkc8.com
// main.m
// OC成员变量-模拟类变量
//
// Created by Goddog on 15/1/2.
// Copyright (c) 2015年 Goddog. All rights reserved.
//
/*
1.OC并不支持类似于Java的类变量,但是可以通过内部变量来模拟类变量。
2.OC也提供类static关键字,但是不能修饰成员变量,只能修饰局部变量、全局变量和函数,
static修饰局部变量表示将该局部变量存储到静态存储区,
static修饰全局变量用于限制该全局变量只能在当前源文件中访问,
static修饰函数用于限制该函数只能在当前源文件中调用。
3.模拟类变量:可以在类实现部分定义一个static修饰的全局变量,并提供一个类方法来暴露该全局变量
*/
#import <Foundation/Foundation.h>
//定义
@interface User : NSObject
+(NSString*) nation;
+(void) setNation:(NSString*) newNation;
@end
//实现
//首先定义一个static修饰的全局变量
static NSString* nation = nil;
@implementation User
+(NSString*) nation
{
NSLog(@"返回nation全局变量");
return nation;
}
+(void) setNation:(NSString *)newNation
{
//对nation全局变量赋值
if(![nation isEqualToString:newNation])
{
nation = newNation;
}
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
//为User类变量赋值
[User setNation:@"HUNAN"];
NSLog(@"User 的 nation 类变量为:%@",[User nation]);
}
return 0;
}
Object-C技术学习,更多资源请访问 https://www.itkc8.com