摘要: 属性的内部实现属性的内部实现(也就是getter、setter方法的实现),主要跟属性的attribute有关。assignassign一般用来标记标量(基本数据类型或者没有 * 号的)和代理delegate。用assign来标记的的属性,对应生成的getter、setter方法,没有对野指针、内存... 阅读全文
posted @ 2016-01-10 16:13 恒远也 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 多态面向对象的三大特征之一。多态的核心,是“父类指针指向子类对象”。体现多态的特点,是把父类指针作为参数,或者返回值的时候比较明显。详细来说,就是我把父类指针作为参数,当传参数的时候,可以把这个父类下的任意子类当作参数传进来。或者我把父类指针当作返回值类型的时候,可以return这个父类下的任意子类... 阅读全文
posted @ 2016-01-10 16:13 恒远也 阅读(216) 评论(1) 推荐(0) 编辑
摘要: 内存管理在iOS中的app,会出现crash(闪退),基本上都是内存出了问题。出现内存问题的原因,基本上有两种,内存溢出和野指针。iOS会给每一个app都分配一定的内存。基本上都是固定平分的内存。因此,我们在开发一个app的时候,需要对内存进行管理,否则容易出现内存问题,导致闪退。内存溢出,在固定的... 阅读全文
posted @ 2016-01-10 16:12 恒远也 阅读(173) 评论(0) 推荐(0) 编辑
摘要: kvc的英文全称是key-value-coding,意思就是键值对编码。用普通的话来说,就是kvc就是通过使用键(字符串)来取值的一种编码。是一种间接访问对象属性的机制,不需要调用getter、setter这些存取方法,就可以直接访问对象属性。我们声明的变量,有可见度。有些私有的,或者受保护的变量,... 阅读全文
posted @ 2016-01-10 16:11 恒远也 阅读(493) 评论(0) 推荐(0) 编辑
摘要: 在用@property声明属性时,在property和变量类型中间,加上括号(),括号里就要写attribute。attribute一共可以分为三大类:读写性控制:readonly、readwrite、setter、getter1、用readonly修饰的,只能读不能写,也就是只能生成getter方... 阅读全文
posted @ 2016-01-10 16:08 恒远也 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 点语法的出现,是为了简化getter、setter方法的调用。若已经定义属性,或者自己写的实例变量的getter、setter方法,则在调用的时候,可以直接用变量直接用点语法点属性变量名或者实例变量名。当编译器检测到点语法要赋值时,就会去调setter方法,当编译器检测检测到点语法要取值时,就会去调... 阅读全文
posted @ 2016-01-10 16:08 恒远也 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 在属性之前,在定义实例变量时,每一个实例变量都需要配对一对getter、setter方法,这一对对的getter和setter方法,都需要我们一个个去声明和实现。由于写getter和setter方法是一项大量重复的工作,oc在2.0版本就给我们提供了解决这个问题的办法,就是加入@property。p... 阅读全文
posted @ 2016-01-10 16:07 恒远也 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 代理模式用我们的话来说,就是我要干一件事,但是我不想干,那么我就找一个人来帮我去干这件事。但是干这件事,要根据我得要求来干,这个要求就是协议,我就是雇主,做事的那个人就是代理人。在oc中,代理模式,按照顺序注意:1、需要有代理双方。2、雇主有需求3、雇主写协议4、写实例变量(这个实例变量为id类型,... 阅读全文
posted @ 2016-01-10 16:06 恒远也 阅读(1746) 评论(1) 推荐(0) 编辑
摘要: CategoryCategory的出现,主要是为没有源代码(只有声明)的类添加方法。比如oc提供的类,都是只有.h声明部分,没有.m实现部分。此时我们可以通过category来向某个类添加我们想要实现的功能,加入的这些代码方法,将会加入到那个类中,成为该类的一部分,并且如果该类被继承,这个categ... 阅读全文
posted @ 2016-01-10 16:05 恒远也 阅读(255) 评论(0) 推荐(0) 编辑
摘要: Protocol(协议)Protocol在iOS中常见,协议是一套标准,类似于一个单子,上面写有一些要去完成的事,就看谁去签这个协议,如果谁签协议,那么它就要实现(完成)协议上要求完成的东西。创建Protocol,command+N,选择objective-c file,然后file中写协议名字,f... 阅读全文
posted @ 2016-01-10 16:05 恒远也 阅读(367) 评论(0) 推荐(0) 编辑
摘要: Extension延展Extension延展的作用是用来管理私有的方法,和类内部使用的实例变量。并且,在延展中定义的实例变量和私有方法只能在本类中使用。在实现文件里定义延展。Person.m文件#import "Person.h"//延展extension//作用,是管理私有方法和类内部使用的实例变... 阅读全文
posted @ 2016-01-10 16:04 恒远也 阅读(158) 评论(0) 推荐(0) 编辑
摘要: NSDate是oc的一个日期和时间的处理类当拿到一个新的类的时候,首先想到的是这个类的初始化方法,这个NSDate类的初始化方法是:NSDate *date = [[NSDate alloc]init];//格林威治时间NSLog(@"%@",date);//2015-04-2109:54:53.5... 阅读全文
posted @ 2016-01-10 16:03 恒远也 阅读(179) 评论(0) 推荐(0) 编辑
摘要: @font-face { font-family: "Courier New"; }@font-face { font-family: "宋体"; }@font-face { font-family: "Cambria Math"; }@font-face { font-family: "@宋体";... 阅读全文
posted @ 2016-01-10 16:03 恒远也 阅读(2924) 评论(0) 推荐(0) 编辑
摘要: 字面量 //字面量 NSArray *a1 = @[@"a",@"b",@"c"];// NSMutableArray *ma1 = @[@"a",@"b",@"c"];//报了类型不匹配的警告 NSMutableArray *ma1 = @[@"a",@"b",@"c"].mutableCopy;... 阅读全文
posted @ 2016-01-10 16:02 恒远也 阅读(404) 评论(0) 推荐(0) 编辑
摘要: block块是一种语法,里边封装了用户自定义的代码块,用来实现某些方法功能。block的定义方式:与函数指针的定义很像,只是把函数指针的*号改成 ^ 号。先写^,然后写返回值类型,接着是参数类型,参数名,然后是大括号,分号,大括号里的代码。 /* //定义Block //返回值可以自己推断出来是什么... 阅读全文
posted @ 2016-01-10 16:01 恒远也 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 数组排序oc提供了排序方法,但是这些排序方法,都是升序排序。NSArray排序sortedArrayUsingSelector:@selector(compare:),用方法选择器来选择比较方法,进行按照不同的条件进行排序。这里用的是compare方法用来比较字符串,然后进行排序。compare的参... 阅读全文
posted @ 2016-01-10 15:59 恒远也 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 集合这里说得集合与collection集合有区别。iOS中用得集合是NSSet和NSMutableSet。集合存储的数不能重复,元素必须唯一。存储的元素是无序的。存储的元素必须是对象类型的。不可变集合NSSet初始化initWithObjects:NSSet *set1 = [[NSSet allo... 阅读全文
posted @ 2016-01-10 15:58 恒远也 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 字典类键值对:key-value键值对,用一个比喻来说,就是有一堆杂乱的,无序的货物,要怎么样去找到某个货物,并把货物拿出来。那么这里就要用标签去给货物贴上,这样就能在这堆货物里,通过标签,找到自己想要的货物了。键值对就是类似于这样的存在,我们用一个键key来保存名字,用value来保存实际的值,这... 阅读全文
posted @ 2016-01-10 15:57 恒远也 阅读(240) 评论(0) 推荐(0) 编辑
摘要: NSNumber的出现,是因为数组不能存放基本类型的数据,这里就可以将基本类型的数据,转换成对象,然后才把对象放到数组里。与C语言的结构体数组有点类似。 //NSNumber //因为数组不能存基本数据类型,这里才将基本数据类型转换成对象,然后才存进数组。 //将基本数据类型转成对象 NSNumbe... 阅读全文
posted @ 2016-01-10 15:56 恒远也 阅读(127) 评论(0) 推荐(0) 编辑
摘要: OC数组中,只能存放对象,不能存放基本类型。nil作为数组结束的标志。打印数组,可以直接给数组名就行。NSArray数组的初始化:1、 //NSArray(不可变变数组) //OC当中的数组,只能存放对象,不能存放基本类型 //nil作为数组结束标志。 NSArray *arr1 = [[NSArr... 阅读全文
posted @ 2016-01-10 15:55 恒远也 阅读(148) 评论(0) 推荐(0) 编辑