OC技术
况柷
这个作者很懒,什么都没留下…
展开
-
重写构造方法
- (id)initName:(NSString *)name andNo { self = [super init] // 必须先用父类的方法初始化后,再初始化自己的特有成员变量 if( self) // 严谨起见,需判断是否父类初始化成功 { _name = name ; _no = no ; } return self ;原创 2015-01-03 17:05:53 · 259 阅读 · 0 评论 -
OC内存管理
OC 内存管理的实质就是 引用计数器的管理。 对于 alloc ,copy,new,retain的对象 要对应的 release。 对于创建单例对象时,重新查询的retainCount 返回 NSUIntegerMAX,为的就是欺骗系统,实例对象始终不会释放。原创 2015-01-03 21:25:45 · 256 阅读 · 0 评论 -
重写description方法
在NSLog(@" %@ ", obj );时会调用description方法。 该方法默认返回的是对象的 类及对象的地址 重写description - (NSString *)description // 返回一个OC字符串 { return [ NSString stringWithFormat:@"Name is %@ No is %d\n",_name原创 2015-01-03 17:48:16 · 275 阅读 · 0 评论 -
代理模式@protocol
代理模式三要素: 代理协议,主体中有一个成员变量是满足代理协议的,代理满足代理协议。 1、代理协议 #import @class Button ; @protocol Myprotocol - (void)onClick:(Button *)btn; @end 2、主体中有一个成员变量是满足代理协议的 #import @inter原创 2015-01-04 22:49:26 · 307 阅读 · 0 评论 -
block
1、block代码中可读取外部变量的值,如果外部变量被__block 修饰(两条下划线)的话,还能修改 例子如下: int m = 10; __block int n=10; void (^sum) ( int,int ) = ^(int a, int b){ NSLog(@" %i ",m); n=11; NSLog(@" %i ",n)原创 2015-01-04 22:28:48 · 293 阅读 · 0 评论 -
@class
@class 指明类。不用包含。 #import 包含 继承类必须采用包含方式。 被包含的类一旦有丁点改变,包含他的文件需要重新编译。原创 2015-01-04 15:22:49 · 243 阅读 · 0 评论 -
判断已经声明的方法是否实现
假设一个按钮的代理方法 - (void)click { if( [ _delegate respondsToSelector:@selector(onOclick:)]) // 如果onClick方法已实现,则使用该该法 [ _delegate onClick:self ] ; }原创 2015-01-04 20:21:18 · 311 阅读 · 0 评论 -
判断一个对象是否遵循协议
[ stu conformsToProtocol:@protocol(protocol)];原创 2015-01-05 00:49:56 · 1623 阅读 · 0 评论