`

Object-c 基础概念

    博客分类:
  • IOS
 
阅读更多

一:Object-c的类基本定义

 

1. 类定义在@interface和@end之间。

2.MyClass:NSObject的方式定义子类和父类。

3.{}中定义类的对象成员

4.-/+定义的是方法,-定义的是对象的方法,+定义的是类的方法。对象是类的一个实例。对于对象的方法,也即是,当使用该方法之前必须先生成该类的一个特定对象。

 

二:强类型和弱类型的引用

 

Object-C的对象可以使用强类型引用和弱类型引用

MyClass *myObject1; // Strong typing
id myObject2; // Weak typing

MyClass * myObject1是一种强类型的定义方法,该定义方法与C++类似。

id myObject2是一种弱类型的定义方法,弱类型的对象主要用于集合类,集合类的对象通常在运行时才知道集合中内部的对象类型定义。弱类型的引用的使用与Object-C的动态类型绑定(Dynamic Typing)息息相关,在Object-C中,每一个对象包含一个成员变量isa,保存着对象属于哪一个类的类型信息。于是,开发人员能够在运行时刻知道对象的定义,例如,其父类是什么,实现了什么函数等。

 

 

三:函数定义和调用

Object-C的函数定义和调用都比较特别,为了让对象执行某个操作,需要向对象发送消息,因此,函数的调用被称作Object Messaging。其消息的定义是[Receiver Message],前者是接收消息的对象,后者是消息的本身。此处先看看函数的定义:

 

函数的定义由函数的类型标记(Method type identifier)、返回值(return type)、一个或者多个的函数签名关键字(Method signature)、参数的类型和命名信息组成。

 

函数的真实命名由各个级联的函数签名关键字组成。例如上述函数定义中函数真实的命名是(insertObject:atIndex:)分号隔开参数的声明。局部的函数签名关键字看起来更像是函数参数的内部命名,真正的参数命名反而在Object Messaging中不出现。例如,上述的函数调用可以写成

[myArray insertObject:anObject atIndex:0];  再来看一个例子,前一行是函数的定义,后面一行是函数的调用,可以看到后面的调用Ojbect Messaging中,写的是函数方法签名的关键字 (Method signature keywords)而不是参数命名(parameter names)。由于没有特别的函数名一项,注意其第一个函数方法签名关键字的 命名看起来就像函数名(changeColorTo)+第一个参数(Red) - (int)changeColorToRed:(float)red green:(float)green blue:(float)blue; [myColor changeColorToRed:5.0 green:2.0 blue:6.0]; 上述例子中,实例方法的真是命名是: -changeColorToRed:green:blue: ,冒号隔开的各个参数顺序不能更改。
  • 大小: 57.7 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics