在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1.定义类: 在.h文件中, @interface 类名:父类名 { 成员变量; } 成员函数; @end; 在.m文件中, @implementation 类名 成员函数定义; @end; 2.成员函数定义:-(返回值类型)函数名:(参数类型)参数,... -(void) setColor:(NSString*)newColor { Color=newColor; } -(void) setNumber:(int)newNumber { Number=newNumber; } 3.实例化类: myCar=[Car new]; [myCar setColor:red]; [myCar setNumber:Num]; 4. @class指令: 当一个类中要使用另一个已经定义好的类时,用@class,若要用到其中的方法,则要#import这个类。 5.内存管理: iphone操作系统不支持垃圾回收机制。 创建一个对象一般用alloc+init,也可用new; alloc,copy,retain,release,autorelease; 6.Foundation框架: @import <Foundation/Foundation.h> NSString类,NSMutableString类; NSArray类,NSMutableArray类; NSDictionary类,NSMutableDictionary类; 7.存取器: 声明类变量时,可使其成为属性。@property int Number; .m文件中,可加入@synthesize Number,自动生成setter和getter方法; 这样,便可用点操作符访问成员变量,car.Number=27; 8.创建对象: id 对象名=[类名 alloc]; [对象名 init]; Boat *boat=[[Boat allco] init]; Boat *boat=[[Boat alloc] initWithNum:123 Color:@"red"]; 一般情况下,init时这样写: -init { if(self=[super init]){ //初始化操作 return self; } 有参数时, -(id) initWithNum:(int) Num Color:(NSString*) Color; 9.变量作用域: 没有任何作用域限制时,默认为protected; 10. @try异常处理: @try{} @catch(NSException *exception){NSLog(@"Catch exception name :%@; reason:%@;", [exception name],[exception reason]);} @finally{} 11.类目与协议: 有时候需要在一个已经定义好的类中加入一些方法而不重写该类,可以使用类目(categories)。 如已定义一Circle类,CircleCal.h文件中, @import "Circle.h" @interface Circle(CircleCal) -(float) AreaCal; -(float) LenCal; @end; CircleCal.m文件中, #import "CircleCal.h" @implementation Circle(CircleCal) -(float) AreaCal{} -(float) LenCal{} @end; 此时便可在main函数中调用新定义的函数; ps:类目不能向类中添加实例变量;类目可以覆盖它所要扩展的类中的方法,不过应尽量避免;使用类目对一个类进行扩展时,同样会影响到该类的子类。 协议是一个方法列表。它声明了一系列方法而不予以实现。协议不是类本身,没有父类,而且不能定义成员变量。 @protocol Calculating -(void) CalculateArea; @end; @interface Rectangle:NSObject <Calculating>{} 在定义Rectangle中的成员函数时,也要定义Calculating中的方法,这样才能调用。 @protocol有两个修饰符:@optional和@required, 被@optional修饰的方法,在采用该协议的类中可以选择不实现,而采用@required修饰的方法,则必须实现。默认为@required。 |
请发表评论