- 博客(8)
- 收藏
- 关注
转载 iOS-OC为什么需要重写setter或getter方法?
打个比方: 一个person类中有一个属性age,那么如果用property声明后,set跟get方法仅仅只是做一个_age = age.但是你想想如果你在person类中new一个对象p,那么我可不可以写成 p setAge = -10 ? 一个人的年龄肯定不会有-10岁,如果重写set方法你就可以在set方法中写成 if(age age = 1; } 也就是说当你给age赋值小于
2016-05-29 21:03:56
2067
原创 iOS-OC中使用KVC转换JSON数据(笔记)
1.模型类: 创建一个模型类,在模型类中添加模型,如: students.h中声明: @property (nonatomic, strong)NSString *name; @property (nonatomic)int age; 2.工具类 创建一个工具类studentsTools 在studentsTools.h中声明方法: -(NSArray *)allStude
2016-05-29 15:57:49
661
原创 iOS-绑定key与属性名方法
如果字典的key与系统自带的关键字冲突怎么解决? 重新绑定key与自定义属性 -(void)setValue:(id)value forUnderfinedKey:(NSString*)key{ if([key isEqualToString:@"冲突关键字"]){ self.自定义属性名 = value; } }
2016-05-29 15:24:31
530
转载 iOS-OC中的self.a与_a访问区别简析
在OC中我们可以通过指令@property定义属性 一般定义属性方法如下: .h文件中: @property int a; -(void)changeValue:(int)aValue; 在类的实例方法中,我们可以通过下面两种方式来访问a的属性 1.直接用属性名访问: --(void)changeValue:(int)aValue{ _a = aValue; //
2016-05-29 13:11:18
634
原创 iOS-OC中的lazyLoad(懒加载)
懒加载(lazyLoad)又称为延迟加载,是iOS中为了节约内存常使用的方法(一个手机内存能有多大呢),简单来说,就是我们定义一个变量,在程序启动的时候不要实例化,等需要使用的时候再调用. 懒加载的有优点:占用内存小 懒加载的使用方法: 1.首先声明一个UILabel,如下: @property (nonatomic, strong)UILabel *label;
2016-05-28 17:47:53
2154
原创 iOS-单例模式
单例模式:Singleton 单个实例模式 单例模式是一种特殊的工厂方法,该工厂方法只能产生一个对象,本质为单例是在程序声明周期里有且仅有被实例化过一次的类,为了确保实例化的唯一性,利用static方法来生成和访问对象,我们可以在程序的任何地方访问类的单例对象,因为只实例化唯一的一次,所以并不用alloc、init、autorelease方法,所以不论你接着对它copy,retain还是allo
2016-05-28 17:05:44
470
原创 iOS-OC中的静态方法(类方法)与实例方法
方法是类的行为,写在.h(接口)和.m(实现)两个文件中,在.h文件中声明方法 在.m文件中实现方法 类方法与实例方法: OC中的类可以声明两种类型的方法:实例方法和类方法.实例方法就是一个方法,它在类的一个具体的实例范围内执行,就是说,你在调用一个实例方法前,必须先创建一个实例.而类方法比较起来,不需要创建一个实例. +号开头表示类方法,在类方法中只只用类名调用,不依赖于任何对象的
2016-05-28 15:13:40
5793
原创 iOS-OC中的类与对象
类是一种数据类型 类只存在源代码中,不在某个区 类是结构体的升级,用于定义变量,类一般定义在.m文件中 类的成员变量名前需要加下划线_ 类中可以添加函数 类中能在堆上定义变量,不能定义在栈上(因为栈小堆大,类占空间较大),并且类不需要释放 类可以使用[类名+函数名]调用 分割文件,类的声明在.h文件中,类中的函数是现在.m文件中
2016-05-28 15:07:53
418
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人