自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 Objective-c - 协议(protocol)的使用

/*  Objective-c - 协议的使用     协议:protocol.     类可以遵守协议,遵守协议的类就拥有了该协议中的所有方法的声明,而不用自己声明.     协议是专门用来写方法的声明的,协议中不能写属性.     协议中也可以写@property,但是协议中的@property只会生成setter

2017-01-20 17:15:29 676

原创 Objective-c - 函数与block的异同

/* Objective-c - 函数与block     1> 函数与block的相同点:             都可以封装一段代码.      2> 函数与block的不同点:             block是一种数据类型,可以用来声明变量,可以做为函数的参数;             函数不

2017-01-14 16:11:46 332

原创 Objective-c - block作为方法的参数:字符串数组的排序

/*  Objective-c - block作为方法的参数:字符串数组的排序    两个字符串的比较由方法的调用者传入. */#import #import "YYArray.h"int main(int argc,const char * argv[]) {   

2017-01-12 18:18:58 382

原创 Objective-c - block作为方法的参数

/* Objective-c - block作为方法的参数     block做为方法的参数可以实现按自己的打印要求传入参数,实现对一个数组的遍历. 如下代码:  */#import #pragma mark -#pragma mark 类的声明//使用typedef简化参数typede

2017-01-12 16:57:19 863

原创 Objective-c - block作为函数的参数

/*Objective-c - block作为函数的参数     1> block做为一种数据类型,可以做为方法或者函数的参数.     2> 将block做为函数的参数,如同其他数据类型一样,直接将block变量写在函数或者方法的小括弧中即可.                例1:            void tes

2017-01-11 21:18:02 3056

原创 Objective-c - 在block内部访问变量

/* Objective-c - 在block内部访问变量        1> 在block代码块的内部可以定义变量.               1,在block代码块内部也可以定义和外部同名的变量,访问变量的时候遵循就近原则.        2,在block代码块内部可以访问外部变量的值.        3,在block代

2017-01-11 19:34:43 840

原创 Objective-c - block的简写

/* Objective-c - block的简写         1> block变量声明的语法:                             返回值类型 (^block变量名称)(参数列表)                              例1:                            

2017-01-11 18:20:16 781

原创 Objective-c - block变量的声明和初始化

/*  Objective-c - block    1> block类型的变量的声明:         block:是一种数据类型,如同其他数据类型一样,我们可以声明一个block类型的变量用来存储数据.         block类型的变量是专门用来存储一段代码的,这段代码可以有参数也可以有返回值.         

2017-01-11 17:17:34 2958

原创 Objective-c - 延展:extension

/*  Objective-c - 延展:extension     1> 延展:extension是一个特殊的分类,故而延展和分类一样也是类的一部分.             2> 延展的特殊性:         1,延展没有名称是一个匿名的分类;        2,延展只有声明没有实现,和本类共享一个实现

2017-01-10 23:34:33 408

原创 Objective-c - 非正式协议

/*  Objective-c - 非正式协议     分类:为已经存在的类写分类叫做分类.        非正式协议:为系统自带的类写的分类,就叫做非正式协议.        例:为NSObject类写分类.为NSObject类写分类,写在分类中的方法,NSObject类和其子类都可以调用.   非正式协议的使用:

2017-01-10 19:52:44 403

原创 Objective-c - category: 分类的使用和注意

/* Objective-c - category: 分类的使用和注意     当我们写一个类的时候,会涉及到一个类会有很多种方法.这个时候所有的方法都写在一个模块之中会显得很混乱,不好维护和管理. 在这个时候我们就可以给这个类添加分类,将不同的方法写在不同的分类当中,一个类占多个模块,方便维护和管理.     1> 分类的新建    

2017-01-10 19:19:13 650

原创 Objective-C - @property的参数总结

/* Objective-C - @property的参数总结      1> 回顾@property的功能:         1,自动生成私有的带下划线的属性;         2,自动的生成这个属性的setter/getter方法的声明;         3,自动的生成这个属性的setter/getter方法的实现;         

2017-01-10 17:16:16 344

原创 Objective-c - ARC机制下的循环引用

/*  Objective-c - ARC机制下的循环引用         互相引用的两个对象的参数,一个使用strong,另一个使用weak.        如果两个都是用strong修饰,两而互相被强指针指向了对方,会导致,两个对象都无法被释放.    */#import #pragma mark -#pr

2017-01-10 16:44:03 272

原创 Objective-c - @property的参数strong与weak

/*  Objective-c - @property的参数strong与weak     1,如果使用strong来修饰类的属性,代表@property生成的私有属性是一个强类型的.    2,如果使用weak来修饰类的属性,代表@property生成的私有属性是一个弱类型的.     注意:ARC机制下,setter方法的实现,不需要做别

2017-01-10 15:43:30 533

原创 Objective-c ARC机制概述

/* Objective-c ARC机制     1> ARC机制概述:             ARC,即Automatic Reference Counting,自动引用计数器.ARC是LLVM3.0的一项特性,解决了手动管理内存的麻烦.                    在ARC机制下,永远不需要写retain,release,au

2017-01-10 13:50:35 456

原创 Objective-c - @class关键字

/* Objective-c - @class关键字     当两个头文件相互引用的时候,如果双方都使用#import来引入对方的头文件,这个时候就会造成死循环,编译报错.     解决方案:     其中的一边,不要使用#import引入对方的头文件,而使用@class关键字,用来标识一下这个类,告诉编译器有这个类的存在. 

2017-01-10 13:01:06 445

原创 Objective-c - @property的参数

/* Objective-c - @property的参数     1> 回顾@property的功能:        1,自动生成私有的带下划线的属性;        2,自动的生成这个属性的setter/getter方法的声明;        3,自动的生成这个属性的setter/getter方法的实现;             

2017-01-09 23:11:24 369 1

原创 Objective-c - 当属性的类型是oc对象的时候,setter方法的写法

/* Objective-c - 当属性的类型是oc对象的时候,setter方法的写法     1> 属性的类型是基本数据类型的时候,不需要写内存管理的setter方法     2> 当属性的类型是oc对象的时候,setter方法的写法:        (以属性NSString *_name;为例:)        - (void)setNa

2017-01-09 17:14:34 375

原创 Objective-c - 多个对象的内存管理之三:为某个属性反复赋值同一个对象

/* Objective-c - 多个对象的内存管理之三:如果对某个属性反复赋值的是同一个对象,不应该反复的release旧的,retain新的. 当我们多次为属性赋值相同的对象的时候,就会出现僵尸对象错误.     解决:        - (void)setCar:(YYCar *)car         {            if(

2017-01-09 16:25:54 561

原创 Objective-c - 多个对象的内存管理之二:为对象的属性赋值新的对象做属性

/* Objective-c - 多个对象的内存管理之二     在多个对象的内存管理之:一个对象作为另一个对象的属性>>的基础之上,增加一个新的车对象,然后将新的车对象赋值给人对象,而这样会出现的问题:当程序结束的时候新车和人会释放,而旧车无法释放,原因是旧车的release消息在人的dealloc方法中.        解决:     

2017-01-09 16:05:05 316

原创 Objective-c - 多个对象的内存管理之:一个对象作为另一个对象的属性

/* Objective-c - 多个对象的内存管理之:一个对象作为另一个对象的属性     1> 关闭ARC,在MRC模式下.模拟//小明开车去上学.     2> 当车对象作为人类对象的属性的时候.要注意的情况:        1,车对象赋值给人类对象做属性,代表车对象多一个人使用,此时应该为车对象发送一条retain消息.

2017-01-09 15:06:40 277

原创 Objective-c - 单个对象的内存管理(内存泄漏)

/* Objective-c - 单个对象的内存管理                1> 内存泄漏的概念:                指的是没有在该回收的时候回收,一直在内存中占据,直到程序结束的时候才被回收.         2> 单个对象的内存泄漏            1, 有对象的创建而没有匹配相应的release;   

2017-01-07 16:17:54 327

原创 Objective-c - 野指针和僵尸对象

/* Objective-c - 野指针和僵尸对象                1> c语言中的野指针:                指的是声明了一个指针变量而没有为其初始化,那么这个指针变量的值就是一个垃圾值,指向内存中的一块随机的空间,这个指针就叫做野指针.                2> oc中的野指针:           

2017-01-07 16:04:56 458

原创 Objective-c - 内存管理(ARC/MRC),第一个MRC程序

/* Objective-c - 内存管理  1> 内存管理概述        内存是用来存储数据的,声明变量就可以将不同类型的数据存储到不同的内存区域当中,以方便管理.存到内存中的数据在不要要的时候应该被释放以保持足够的存储空间而重复利用.  2> 内存中的五大区域         栈区:用来存储局部变量,当作用域执行完毕之后,局部

2017-01-07 15:28:34 378

原创 Objective-c - 构造方法(init方法)和init方法的重写

/*  1> 创建一个对象,那么就调用这个类的new方法.  2> new方法是一个类方法,new方法做的事情:    1>在堆区开辟空间存储对象,这个对象中会声明它对应的类中定义的所有属性(注意是属性,没有方法),还有一个isa指针,指向对应的在代码区中的类    2>初始化这个对象内部属性的值        1,基本数据类型初始化为:0

2017-01-07 14:03:14 4780

原创 Objective-c - instancetype的使用

/* Objective-c - instancetype:     1> instancetype:        只能用作方法的返回值,代表返回值类型为当前类的对象.     2> instancetype和id类型的区别:            instancetype只能用作方法的返回值,别的地方不能用,代表返回值类型为当前类的对象.

2017-01-04 15:27:36 2093

原创 Objective-c - 万能指针(id指针 / NSObject指针)

/* Objective-c - 万能指针(id指针 / NSObject指针)  NSObject万能指针和id指针都是万能指针,他们都可以指向任意的OC对象.  1> id指针     id是一个typedef类型,id指针是一个万能指针,它可以指向任意的OC对象.     当指针的类型是(NSObject *)类型,编译器在变异

2017-01-03 18:18:44 2253

原创 Objective-c - NSObject万能指针

/* Objective-c - NSObject万能指针   里氏替换原则:    父类的指针指向子类的对象,对程序没有任何的影响,这就是里氏替换原则.  NSObject类是所有OC类的父类,根据里氏替换原则,NSObject指针可一直想任意的OC对象. 当NSObject指针指向子类对象的时候,如果要调用

2017-01-03 17:37:39 403

原创 Objective-c - setter/getter方法的自动生成(Xcode4.4版本开始)

/* Objective-c - setter/getter方法的自动生成(Xcode4.4版本开始)     1> @property的增强:        自Xcode4.4版本开始,@property实现了增强,只写一个@property,编译器就会自动帮你完成如下工作:        1, 自动生成一个带下划线的属性,这个属性是生成在@impleme

2017-01-03 17:03:27 790

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除