在objective-c中模拟静态类变量

原创 2013年12月02日 20:05:53

最近在写的代码,做了一个简单设计:

在类UserData中保存运行时的必要信息,比如当前登录用户的id,所属的企业id,token是否失效等。这些信息都写在UserDefaults里,不缓存,每次需要时重新从UserDefaults里加载

然后客户端代码并不直接操作UserDefaults,而是通过一个辅助类UserDataUtil,得到UserData对象。UserData的组装是由UserDataUtil来完成的。其实也可以考虑把UserData和UserDataUtil合并成一个类,这样当UserData增加字段时,就不需要在两处修改了,似乎也不错,不过这次没有这么做

代码中有一个简单的需求,就是需要一系列静态类变量,来保存所有UserDefaults的KEY,这在JAVA中非常容易实现:

public class UserDataUtil {
	
	public static final String ENTERPRISE_ID_KEY = "enterprise_id";

}

不过在objective-c里,似乎没有静态类变量这个概念。。最后写了一个类似的类,来实现这种效果:

@interface YLSUserDataUtil : NSObject

+(YLSUserData*) readUserData;

+(NSString*) ID;
+(NSString*) USER_ID;
+(NSString*) ENTERPRISE_ID;;

@end

上面是.h文件,定义了一组静态方法。下面是.m文件:

static NSString* ID = @"id";
static NSString* USER_ID = @"userId";
static NSString* ENTERPRISE_ID = @"enterpriseId";

@implementation YLSUserDataUtil

+(NSString*) ID
{
    return ID;
}

+(NSString*) USER_ID
{
    return USER_ID;
}

+(NSString*) ENTERPRISE_ID
{
    return ENTERPRISE_ID;
}

+ (YLSUserData*) readUserData
{
    // 从UserDefaults中加载数据,组装UserData并返回
}

@end

最后是使用这些静态变量的客户端代码:

NSString *key = [YLSUserDataUtil ENTERPRISE_ID];

版权声明:本文为博主原创文章,未经博主允许不得转载。

objective-c没有类静态成员变量

http://www.cocoachina.com/bbs/simple/index.php?t3312.html kyle 2009-04-05 17:09 ...

Objective-C 类,实例成员,静态变量,对象方法,类方法(静态方法),对象,

Objective-C 类,实例成员,静态变量,对象方法,类方法(静态方法),对象, 一、类 在ios中,类的声明和实现时分离的,也就是说不能写在同一个文件中,生命放...

【IOS 开发学习总结-OC-10】★ objective-c面向对象之——成员变量,模拟类变量,单例模式

OC 中变量根据定义位置的不同,可以分为3大类:成员变量,局部变量和全局变量。 之前提到过方法是由函数演化而来的,所以不管是方法中定义的变量,还是函数中定义的变量,都是局部变量。成员变量及其运行机制...

Objective-C中的作用域静态变量详解

和c++一样,objective c中静态变量使用static关键字进行定义。例如:static NSUInteger n; 需要注意的是该static变量的作用域,它的作用域是在定义该变量的.m文件...

利用Objective-C的反射机制和运行时特性实现类静态方法的动态访问(一)

利用Objective-C的反射机制和运行时特性实现类静态方法的动态访问,解决不能使用NSObject类的反射方法 performSelector 访问静态方法的坑爹问题!...

iOS --- Objective-C中类的成员变量与属性

在Objective-C的类与对象的概念中. 成员变量与属性的区别与联系一直没有搞清楚. 直到学习了慕课网上的这个课程Objective-C面向对象初体验, 才算真正有了点感觉了. 最关键的结论就是:...

Objective-C——类、方法、属性、成员变量

有过相关编程语言基础,了解C++/java的相信对类的类、对象等概念是了解的。在此我也不做过多地赘述。      关于OC中类的定义及方法使用这块,OC定义了一套自己的规范 类的定义:        ...
  • codebat
  • codebat
  • 2014年09月17日 19:50
  • 1422

5. 14 Objective-C 类与对象,成员变量

Objective-C 类与对象,成员变量

Objective-C——类、方法、属性、成员变量

转载:http://www.elsyy.com/news/2014/1017/19355532620.html关于OC中类的定义及方法使用这块,OC定义了一套自己的规范 类的定义 @interfa...
  • oLevin
  • oLevin
  • 2015年09月19日 16:59
  • 473

Objective-C 通过运行时遍历类所有成员变量

转载地址  http://www.cnblogs.com/cloudayc/archive/2012/10/31/2745336.html Objective-C 通过运行时遍历类所有成...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在objective-c中模拟静态类变量
举报原因:
原因补充:

(最多只允许输入30个字)