Objective C 学习

来源:互联网 发布:mac mini是什么 编辑:程序博客网 时间:2024/06/07 04:03

Objective c简称OC:

1. OC类只能从一个父类继承,而C++不限,这是OC和C++的区别;

2. 所有OC中的类继承于NSObject;

3.id数据类型————一种能在Objective-C中表示所有对象的特殊数据类型;

4. 类接口通过@interface Classname这种特殊语法声明 

  @interface my class :  NSObjective

 {

//类数据

 }

//属性声明

@property (nonatomic,strong) NSString *someString;

//方法声明

- (void) someMethod;

@end

5. 实现文件

6.典型初始化函数

- (id)init
{ 
    if((self = [super init])) {
         //执行一些资源、变量的初始化工作
    }
    returnself;
}
7.-(void)dealloc{
//[memberVariable release];
//memberVariable = nil;
[super dealloc];
}
8. self 和C++中的this类似;
9. 类方法,使用+号声明的方法,与C++中的静态函数相似,属于类,通过类名调用,而不属于某个对象;类方法常见的应用就是工厂类中,用来构造对象;
10. 属性
@property (nonatomic,strong) NSString *someString;

通常,接口文件中声明的内容也要在实现文件中声明。属性也不例外。为了使用编译器自动生成的存取器方法,在实现文件的实现块中属性必须要有一个声明。实现文件中的属性声明的类型可以是@synthesize声明或者@dynamic声明。@synthesize指令会使得编译器生成为属性创建存取器函数所需的所有代码。本质上,该指令是属性的“替代品”。如果使用@synthesize指令,不需要在实现文件中为属性写任何代码。 另一方面,如果想手动创建存取器函数,现在或者之后动态加载到运行时环境中,可以通过使用@dynamic指令来创建。在使用@dynamic指令时,编译器会指望你为属性创建一对合适的存取器函数。 

11. 代码块——C++中的函数指针

简单的代码块实例

不同类型的代码块定义

12. 协议 

本质上协议就是其他类不通过继承就可以实现的接口。

       “优先使用组合而不是继承”

实现了给定协议的类就要提供协议声明中指定的方法的实现。

协议的另一种理解方式就是将其想象成记录在文档中需要其他人实现的接口

13.类别

类别限制:

通过类别重写现有对象方法时无法调用原始的现有对象方法。

          




0 0