在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];

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

相关文章推荐

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

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

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

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

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

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

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

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

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

转载:http://www.elsyy.com/news/2014/1017/19355532620.html关于OC中类的定义及方法使用这块,OC定义了一套自己的规范 类的定义 @interfa...

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

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

类和对象:Objective-C概述、面向对象编程、类和对象、实例变量操作

本章内容 Objective-C概述 面向对象编程类和对象实例变量操作 ------------------------------------ ...

Objective-C编程:在类的外部声明全局变量

进来学习iOS开发,在研究通知中心的机制(notification center)时,编写了如下代码,首先自定义一个类: @interface Test1NotificationMy1 : NSOb...
  • laso
  • laso
  • 2013-09-05 11:07
  • 928

day1: Objective-C概述、面向对象编程、类和对象、实例变量操作

day1: Objective-C概述、面向对象编程、类和对象、实例变量操作

Objective-C类成员变量深度剖析

原文链接:http://t.cn/R24lioj?u=1708947107&m=3845622346543604&cu=1839484950&ru=1796149773&rm=384508883518...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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