最近在写的代码,做了一个简单设计:
在类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语言将决定尽可能的从编译和链接时推迟到运行时。只要有可能,Objective-C总是使用...本文档将具体介绍NSObject类以及Objective-C程序是如何和运行时系统交互的。特别地,本文档还给出来怎样在运行时动态地加
Objective-C语言的许多决策可以在编译和运行时执行。只要有可能,它是动态的。这意味着Objective-C语言不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。Runtime系统是一种用于Objective-C语言的操作系统...
希望这个简单的Objective-C语言教程能够为你提供一个入门的起点。Objective-C是一种面向对象的编程语言,广泛应用于Mac OS和iOS开发。通过学习Objective-C的基本语法、类和...祝你在学习Objective-C的过程中取得成功!
读者在阅读《objective-c程序设计》后,可以掌握objective-c语言的基本内容,并进行实际的iphone/ipad和mac应用开发。《objective-c程序设计》共分成11章。前6章讲述objective-c语言,包括数据类型、运算符、表达式...
《Objective-C 程序设计(第4版)》已经为iOS 5和Xcode4.2中的重大变更做了全面更新,最大的改动是引入了自动引用计数(ARC),并详细说明了如何在Objective-C编程过程中使用ARC提升和简化内存管理。
本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的面向对象编程技术。...
用Objective-C语言实现了各种设计模式,收集各种例子,方便大家学习和普及设计模式。.zip用Objective-C语言实现了各种设计模式,收集各种例子,方便大家学习和普及设计模式。.zip用Objective-C语言实现了各种设计...
C语言主要知识点巩固(学习Objective-C 的前提),PPT格式。
Objective-C 基础教程,从入门到精通 Objective-C 基础教程,从入门到精通,是你学习 Objective-C 的经典之作。
本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的面向对象编程技术。...
Objective-C 是一种通用、面向对象的编程语言,广泛应用于 macOS 和 iOS 等苹果平台的开发中。它是 C 语言的超集,结合了 Smalltalk 式的消息传递机制和 C++ 的特性。Objective-C 是苹果公司采用的主要编程语言之一...
在windows系统下搭建Objective-C开发环境,由于公司要做iphone开发,个人学习objc(Objective-C)语法,所以在windows7下搭建了一个objc开发环境,现把自己整理的帮助文档拿来与大家分享,希望能对大家有所帮助。...
elcome to Learn Objective- C on the Mac! This book is designed to teach you the basics of the Objective- C language. Objective- C is a superset of C and is the language used by many (if not most) ...
这是一个基于Objective-C语言的基础案例集 旨在用于给初学者快速了解Objective-C语言的语法 .zip
本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中的框架,以及继承、复合、源文件组织等众多重要的面向对象编程技术。...
这是一个基于Objective-C语言的基础案例集。旨在用于给初学者快速了解Objective-C语言的语法。.zip
Objective-C高级编程 iOS与OS X多线程和内存管理.pdf