自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 protocol简单使用

可以声明一大堆方法(不能生命成员变量) 只要某个类遵循了这个协议,就相当于拥有了这个协议中的所有方法声明 只要父类遵循了某个协议,就相当于子类也遵守了

2016-05-30 23:00:04 301

原创 typedef block

typedef int (*sump) (int,int);sump p = sum; sump p2 = sum;定义了一个block

2016-05-30 22:18:48 215

原创 第一个 block 的进化

{ NSLog(@">>>>>>");}这是个代码块^{ NSLog(@">>>>>>");};加上尖号,加上 分号 生命这是个 block 里面保存了一段代码void (^myblock)() = ^{ NSLog(@">>>>>>");};声明一个blockmyblock();调用 block

2016-05-18 23:15:26 198

原创 单个文件转换非ARC

1、项目上单击2、右侧 targets -> build Phases -> compile Sources 里面有编译的 .m 文件3、文件上双击,或者回车 填入 -fno-objc-arc 4、想要某个文件是 ORC 填入 -f-obj-arc

2016-05-18 22:49:09 281

原创 ARC和非ARC区别

ARC 是编译器特性看到 @property (retain), 自动在 dealloc 里面添加相关属性的 release ,看到 你在main 方法里面调用 alloc ,就在后面自动给你添加 release注意不是垃圾回收,垃圾回收是运行时特性

2016-05-17 23:12:31 869

原创 autorelease 的封装

由于代码Person *p = [[[Person alloc]init]autorelease];太长,所以可以用类方法对他进行封装+ (id)person{ return [[[Person alloc]init]autorelease];}这样可以快速返回一个 autorelease 的对象

2016-05-17 22:23:36 192

原创 autorelease

自动释放手动内存管理的时候由于每次 alloc 以后都要调用 release 方法,为了简化管理,可以使用自动释放池使用方法是Person *p = [[[Person alloc]init]autorelease]这句话的意思是把 Person 对象放到自动释放池中,当自动释放池销毁的时候,会把自动释放池中的对象统一进行一次 release如何创建自动释放池 @autorelease{}大括号开

2016-05-17 20:46:50 177

原创 循环引用

解决循环引用的问题就是一端用 retain 一端用 assign 这是个特例

2016-05-16 23:21:13 183

原创 @class

@class 的作用:仅仅告诉编译器这是一个类开发中引用类的规范 1、在 .h 文件中用 @class 来声明类 2、在.m 文件中用 #import 来包含类的所用东西

2016-05-16 23:14:54 182

原创 @property 的属性

OC的 @property 语法可以自动帮助生成 成员变量,get 方法,和set 方法,但是 @property 还可以有一些属性可以对生成的方法进行精细化控制。 这些精细化控制主要分几类:1、跟set 方法内存管理相关的 * assign : 默认的,直接生成 set 方法 (适用于非 OC 对象) * retain : release 旧值,retain 新值,(适用于 OC 对象) *

2016-05-15 23:36:35 218

原创 自动生成 get set

@property 会自动生成 get 方法, set 方法 和 _ 成员变量,但是你要是自己实现了 get 方法,set 方法,@property 就不会生成 get 方法 和 set 方法,要是自己实现了一个,系统还是会给生成你没有实现的那个

2016-05-15 22:11:20 920

原创 内存管理原则

有 alloc 必须有 releaseset 方法规范 基本数据类型,直接赋值 - (void) setAge:(int)age { _age = age; }OC 对象类型- (void)setCar:(Car *)car{ if(car != _car) { [_car release]; _car = [car retain

2016-05-15 12:54:50 217

原创 空指针和野指针

空指针: 指针不指向任何对象野指针:指针指向的对象已经被销毁

2016-05-11 22:47:07 223

原创 引用计数器

alloc new copy 以后新创建的对象的引用计数器是1引用计数器 +1 调用 retain 应用计数器 -1 调用 releaseretainCount 方法 返回当前的引用计数器当引用计数器为 0 的时候对象会被销毁,当一个对象被销毁的时候,系统会自动向对象发送一条 dealloc 消息,遗言,让他释放对象用的

2016-05-11 22:45:48 290

原创 SEL

OC 中方法会被封装成 SEL 对象,当我们调用一个方法的时候,其实会在实例对象中把要调用的方法封装成 SEL 对象,然后通过 isa 指针找到 类对象的方法列表,调用对应的方法SEL 类型的定义 typedef struct objc_selector *SEL

2016-05-10 21:38:13 241

原创 description 方法

我们打印一个类的时候通常是使用 %@ ,但是 NSString 对象会把字符串的值打印出来,其他的对象只会打印出来 <类名:0X99898989> 类名:地址,这是因为 NSString 重写了description 方法。NSObject 有两个 description 方法,一个是 -description 一个是 +description ,当我们重写了 -description 的时候,在调

2016-05-09 23:40:17 413

原创 类的初始化过程

类的初始化过程中有两个比较重要的方法 + (void)load +(void)initialize 这两个方法是自动调用的load 方法在程序启动的时候的每个类的 load 方法都会被调用一次,注意是每个类的 load 方法,不是对象的,程序启动的时候initialize 方法在类被初始化的时候会调用一次,注意初始化,调用顺序是先调用 父类的,再调用子类的

2016-05-08 18:23:58 213

原创 OC 类对象

OC 中类也是一种对象,叫 Class 对象类对象的作用,可以用类对象直接调用类方法 获取类对象,一般直接调用 类的 class 方法就可以 Class c = [Animal class]; // Class 不用加 * 内部已经自动加 * [c test]; // test 是类方法,就是以 + 开头的还可以通过 Class 对象创建对象 Class c = [Animal

2016-05-08 17:55:45 238

原创 OC 分类注意事项

分类会覆盖原来类中已经实现的方法分类可以访问原来类中的成员变量,但是不能添加成员变量如果两个分类中都实现了某个方法,执行哪个方法和分类的编译顺序有关,编译顺利那里看 项目名称 -> build phased -> compile sources查看编译顺序的时候就能看出来,.h 文件是不被编译的,就是被别人 import 的

2016-05-07 10:57:21 176

原创 OC 构造方法

重写父类 init 方法,创建对象的时候尽量是用 alloc 和 init方法- (id)init{ self = [super init]; if(self != nil) { _age = 10; } return self;}精简写法- (id)init{ if(self = [super init]) {

2016-05-03 23:18:24 149

原创 OC id 类型

OC 中有一个万能的指针是可以执行任何对象,id 小写的例如:id p = [Person new];注意这个 id 指针是没有 * 号的

2016-05-01 16:01:21 269

原创 @property @synthesize

Xcode 中没有自动生成 set get 方法的快捷方式,OC 中提供了标签来进行 成员变量 get set 方法的声明和实现.h 文件声明{ int _age;}@property age;// 自动生成 age 属性的get方法声明 和 set 方法声明.m 文件实现@synthesize age = _age;// 前面一个age 后面一个_age 前面的 age 是生成@prop

2016-05-01 09:40:51 176

单片机C语言程序100例

里面包含了100个51单片机的protus仿真电路图,对学习单片机的各项功能很有帮助

2012-06-01

空空如也

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

TA关注的人

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