对于有过C/C++或者JAVA功底的同学来说,学习Objective-C是非常简单的。大概花了2-3个小时学习语法还有思想吧。
主要的关键点总结:
1.类型增加
BOOL: YES NOnil :NULL
id : void* //由于不存在类型转换,所以id可以作为任何类型使用
2.增加import解决include的多次包含冲突
3.类相关
//声明 *.h
@interface childClassName:superClassName<ProtocolName1, ProtocolName2>{
members
}
-(returnType) funcName:(type)ParamName param2:(type)param2Name
+(returnType) funcName:(type)ParamName param2:(type)param2Name
@end
//定义 *.m
@implement className
-(returnType) funcName:(type)ParamName param2:(type)param2Name //普通方法
{
}
+(returnType) funcName:(type)ParamName param2:(type)param2Name //class level method.不用实例化即可使用
{
}
@end
//使用
[obj method:param1 ParamName:param2]//默认 关键的方法
init : 构造函数alloc : 内存分配
retain : 增加引用
release : 减少引用
dealloc : 在引用为0时自动调用
class : 类级方法,返回该类
poseAsClass :扮演(只能是子类扮演父类)
//关键字
super : 父类self : 本身
@ : 关键字开头 @interface @end @implement @public @protected @private
//动态识
-(BOOL) isKindOfClass: classObj :此对象是否是classObj的成员 [chlid isKindOfClass:[Child class]]; [chlid isKindOfClass:[Father class]]-(BOOL) isMemberOfClass: classObj :此对象是否是classObj的成员 [chlid isMemberOfClass:[child class]]
-(BOOL) respondsToSelector: selector :此对象是否有叫做selector的方法[child respondsToSelector:@selector(init)]
+(BOOL) instancesRespondToSelector: selector : 此类的实例化对象是否是由有能力返回指定selector的方法[Child instancesRespondToSelector:@selector(init)]
-(id) performSelector: selector :调用此对象的指定selector
//Categories
//扩充Fraction类,不使用其源代码@interface Fraction (Math)
@end
@implementation Fraction (Math)
@end
//Posing
//扮演//Protocols //Interface
@Protocol name@end
@interface className:superClassName<ProtocolName1, ProtocolNam2>
{
}
4.内存管理
IOS没有垃圾回收,自能retain release和autorelease4.异常
参考资料:
http://mobile.51cto.com/mobile/objc/
<Objective-C入门指南>