摘要: Objective-C中调用函数的方法是“消息传递”,这个和普通的函数调用的区别是,你可以随时对一个对象传递任何消息,而不需要在编译的时候声明这些方法。所以Objective-C可以在runtime的时候传递人和消息。 首先介绍两个方法 SEL和@selector根据AppleObjective-C Runtime Reference官方文档这个传递消息的函数就是 id objc_msgSend(id theReceiver, SEL theSelector, …)theReceiver是接受消息的对象类型是id,theSelector是消息名称类型是SEL。下边代码我们来看看如何来生成一个S 阅读全文
posted @ 2013-06-03 16:15 ygm900 阅读(264) 评论(0) 推荐(0)
摘要: 在ios第一版中,我们为输出口同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如:@interface MyViewController :UIViewController{UIButton *myButton;}@property (nonatomic, retain) UIButton *myButton;@end最近,苹果将默认编译器从GCC转换为LLVM(low level virtual machine),从此不再需要为属性声明实例变量了。如果LLVM发现一个没有匹配实例变量的属性,它将自动创建一个以下划线开头的实例变量。因此 阅读全文
posted @ 2013-06-03 13:56 ygm900 阅读(577) 评论(0) 推荐(0)
摘要: 对于iphone开发人员来说,内存管理是极为重要的技巧,哪怕程序的功能再强大,设计再漂亮,如果内存控制不好,也难逃程序莫名退出的噩运,这与网页开发是完全不同的。内存控制里面有很多门道,在这里分析一下 viewDidUnload 和 dealloc 的区别,关于这两者的区别的文章很多,但是大都是摘抄和翻译官方文档,有的也只是简单的说两句,并没有详细说出两者具体的区别。在了解两者之间的区别,首先要知道view的生命周期,google 里面有很多文章,可以先去搜一下,这里就不详解了。顾名思义 viewDidUnload就是当 view 被卸载以后执行的语句,它与 viewDidLoad 是相互呼应. 阅读全文
posted @ 2013-06-03 13:30 ygm900 阅读(205) 评论(0) 推荐(0)
摘要: 1、针对自己自定义的类:直接小写第一个字母EventTableViewCell *eventTableViewCell; 2、针对苹果类库中的类 1)去头后小写第一个字母CLLocationManager *locationManager;NSManagedObjectContext *managedObjectContext; 2)用对象的用途名称+类名的核心进行命名NSMutableArray *eventsArray; //events + ArrayUIBarButtonItem *addButton; //add + Button参考代码:官方例子 ... 阅读全文
posted @ 2013-06-03 11:55 ygm900 阅读(629) 评论(0) 推荐(0)
摘要: 1.import会包含这个类的所有信息,包括实体变量和方法,而@class只是告诉编译器,其后面声明的名称是类的名称,至于这些类是如何定义的,暂时不用考虑,后面会再告诉你。2.在头文件中, 一般只需要知道被引用的类的名称就可以了。 不需要知道其内部的实体变量和方法,所以在头文件中一般使用@class来声明这个名称是类的名称。 而在实现类里面,因为会用到这个引用类的内部的实体变量和方法,所以需要使用#import来包含这个被引用类的头文件。3.在编译效率方面考虑,如果你有100个头文件都#import了同一个头文件,或者这些文件是依次引用的,如A–>B, B–>C, C–>D这 阅读全文
posted @ 2013-06-03 11:43 ygm900 阅读(335) 评论(0) 推荐(0)
摘要: CGFloat tvheight = MIN(CELL_HEIGHT*rowCount, 360.0f); 阅读全文
posted @ 2013-06-03 11:20 ygm900 阅读(334) 评论(0) 推荐(0)
摘要: iOS 内存管理,我们需要一套切实可行的实践指导书,而不是理论指导书苹果官网的例子代码是否能够给我们带来启发呢? 阅读全文
posted @ 2013-06-03 08:53 ygm900 阅读(159) 评论(0) 推荐(0)