摘要: C/C++中使用#include来包含头文件,缺点就是同一个头文件可能被包含多次。Objective-C中使用了#import来包含头文件,优点就是同一个头文件只能包含一次。@class和#import是为了解决循环引用导致的死锁问题#import会包含这个类的所有信息,包括实体变量和方法,而@class只是告诉编译器,其后面声明的名称是类的名称,至于这个类是如何定义的,暂时不用考虑,后面会再告诉使用者。在类的声明.h文件中一般只需要知道被引用的类的名称就可以了,不需要知道其内部的实体变量和方法,所以在类的声明.h文件中一般使用@class来声明这个名称是类的名称。而在实现类里面。因为会用到这 阅读全文
posted @ 2013-03-13 20:53 cateatmycode 阅读(175) 评论(0) 推荐(0) 编辑
摘要: BOOL使用8位存储,YES定义为1,NO定义为0,大于1不为YES,跟标准C不同。id是一种泛型,用于表示任何类的对象,id实际上是一个指针,指向其中的某个结构@implementation是一个编译器指令,表明你将为某个类提供代码继承(X是一个Y,isa)Objective-C不支持多继承,我们可以通过Objective-C的其他特性获取多继承的优点,例如分类和协议方法调度当代码发送消息时,Objective-C的方法调度将在当前分类中搜索相应的方法,如果找不到,则在该对象的超类中进行查找复合(X有一个Y,has)if (self = [super init]) { //将[super i 阅读全文
posted @ 2013-03-13 13:00 cateatmycode 阅读(232) 评论(0) 推荐(0) 编辑
摘要: nonatomic:非原子性访问,对属性赋值的时候不加锁,多线程并发访问会提高性能。如果不加此属性,则默认是两个访问方法都为原子型事务访问。(atomic是Objc使用的一种线程保护技术,基本上来讲,是防止在写未完成的时候被另外一个线程读取,造成数据错误。而这种机制是耗费系统资源的,所 以在iPhone这种小型设备上,如果没有使用多线程间的通讯编程,那么nonatomic是一个非常好的选择。)assign:简单赋值,不更改索引计数对基础数据类型 (例如NSInteger)和C数据类型(int,float,double,char, 等) 适用简单数据类型copy:建立一个索引计数为1的对象,.. 阅读全文
posted @ 2013-03-13 12:45 cateatmycode 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 我们在进行iOS开发时,经常会在类的声明部分看见类似于@synthesizewindow=_window;的语句,那么,这个window是什么,_window又是什么,两个东西分别怎么用,这是一个比较基本的问题,也关乎我们理解Objective-C中对类、类的属性、类的存取器、类的局部变量的统一理解。在32位系统中,如果类的@interface部分没有进行ivar声明,但有@property声明,在类的@implementation部分有响应的@synthesize,则会得到类似下面的编译错误:Synthesizedproperty'xX'musteitherbenamedth 阅读全文
posted @ 2013-03-13 12:44 cateatmycode 阅读(332) 评论(0) 推荐(0) 编辑