C语言的基本基本没有 ,就开始学习OC难免回有些浅薄,写给0基础的人看,主要是给我自己一回忆的地方,希望大虾们不要见笑。
对象的声明格式:
NSObject* anObject; (类名*对象名)--OC语言中NS(NeXTSTEP )为现任苹果CEO,之前NeXTSTEP老板的乔布斯团队的用户界面工具包,并一直沿用至今。由于OC中所有对象的操作都是由指针来完成,所以我们可以见到代码中大部分都是指针。
对对象的操作称为方法,以[receiver message];(消息)的形式来完成。所以消息就是方法名的抽象。方法可以带多个参数,出于清晰方面考虑,多参数的一般将参数名分为不同不分,如:[receiver message:argument1 name:argument2];
如果有返回值的,需要指定返回值的类型 :type Returns;
Returns=[Class message];
OC中所有的类都是继承来的,而他们的根类就是NSObject,这是一个抽象类(Abstract classes),他本身不能被实例化,单独使用也没有任何意义,完全是为了被继承。所有的子类有其父类的所有属性和方法。
类的定义分为两个部分,接口部分(interface)和实现部分(implementation),接口部分声明了类中的属性和方法名,实现部分声明了属性,和方法的的定义。由于接口部分有属性的声明,所以在实现部分,我们一般省略对属性的声明。类的声明格式如下:
@interface ClassName:ItsSuperclass{ @implementation ClassName:ItsSuperclass{
instance variable declarations; instance variable declarations; //下划线部分可以省略
} }
method declarations; method definitions;
@end @end
方法的定义格式:一般以大括号为定义体部分,要声明方法的返回值类型,如果不写则默认为id类型。方法前以“+”“-”号为开始,“+”代表该方法为类方法,对类对象进行操作。“-”为实例方法,对实例变量进行操作。
O-C中有两个关键字可以在方法的实现中代表执行方法的对象:
self:执行方法的对象本身
super:调用对象的父类中的实现来执行方法
self除了可以用作向自身请求方法以外,还可以作为一个代表对象本身的隐藏变量来使用
super只能出现在消息表达式中,代表了对被复写的方法的原始实现的请求方式
O-C中对象的创建需要两个部分,第一:内存分类(Allocation)。第二:对对象进行初始化(initialization)。而我们一般将这两步在同一个语句中实现。
id anObject=[[Rectangle alloc]init];
如果初始化方法有可能返回nil,则还需要做检查处理:
id anObject = [[SomeClass alloc] init];
if ( anObject )
[anObject someOtherMessage];
else
...
分配内存并初始化以后,他在内存中的所有位置都被置0。如果这样的结果不是我们想要的,我们需要对对象赋一定的值才能继续进行时。我们就需要自定义初始化。自定义初始化方法时所有方法中要求最多的。
1。自定义初始化方法的命名一般应以“init”开头
2。初始化方法的返回值类型必须是id
3。在自定义初始化方法的实现中,必须有对本类的指定初始化方法的引用
4。在实现中引用其它初始化方法时,注意把返回值赋给self
5。在对实例变量赋值时,进行直接访问,而不是透过访问器
6。在实现的最后返回self,如果初始化过程失败,则返回nil
通常应当在完成对先期初始化结果的检查后才进行外部连接的建立:
- (id)init {
if (self = [super init]) {
creationDate = [[NSDate alloc] init];
}
return self;
}
初始化的过程为从上到下,先父类后子类。例如C继承于B,B继承于A,则初始化的顺序为先a,再b,再c
A
@implementation superclass
-init{
if(self=[super init])
{
return self;
}else{
self release;
return nil;
}
B
-init
{ return [ self initWithname];} //返回本类的init方法
-(id) initWithname:(NSSrrung *)string
if(self=[super init]) // 判断父类中的init方法执行情况
{ name=string;
return self;}
C
-(id)initWithname:
{ return [self initWithname:fromFile]; }
-(id)initWithname:(NSString)...fromFile
if (self=[super initWithname])
{...
return self;}
TheDesignatedInitializer
指定初始化方法(Designated Initializer)。指定初始化方法即指被指定进行从父类继承的实例变量的初始化的初始化方法。上例B中的initWithName方法就是指定初始化。
分享到:
相关推荐
MacOS开发(OC)----NSTableView类相关属性跟方法附件
MacOS开发(OC)----NSCollectionView类相关属性跟方法附件
OC-单例OC-单例OC-单例OC-单例OC-单例
黑苹果一键生成工具OC-GEN-X 0.7.7
OC语言教程-第3讲-内存管理1-黄金法则 OC语言教程-第4讲-内存管理2-retain点语法 OC语言教程-第5讲-内存管理3-MyArray OC语言教程-第6讲-内存管理4-AutoreleasePool OC语言教程-第7讲-协议 OC语言教程-第8讲-协议...
外星人灯光控制插件。Alienware-OC-Controls-Application。
OC-little 内含多种DDST SSDT补丁 用于修复黑苹果硬件信息使用。
OC引导-剑客主题.zip
OC引导-蕾姆主题.zip
OC5864-DS01CN
前端开源库-oc-empty-response-handleroc空响应处理程序,空响应用例的处理程序
OC2006-DS01CN
OC引导-樱瞳主题.zip
OC内存管理:采用引用计数的方式管理内存 MRC :手动管理内存(手动管理引用计数) ARC:自动管理内存(自动管理引用计数)--系统默认
这个资料详细讲解了 OC 中的内存是如何管理的。
GPS追踪器,电动车控制器,车载充电器,POE交换机分离器,LED照明驱动
OC-图片浏览器
OC-NSLock
火车日历 http://blog.csdn.net/wondgirl/article/details/53671752
前端开源库-oc-s3-storage-adapterOC-S3-存储适配器,用于OC的S3存储适配器