还不是很完整 正在努力学习中。。。
类定义:
@interface myclass:NSObject{
int age;}
@property int age;
@end
类实现:
@implement myclass
@synthesize age;
@end
多参数方法与调用
-(void)SetAge:(int)age name:(NSString*)str;
(void)SetAge:12 name:@”hello”;
选择器:
SEL sel=@selector(Setname:age:);
If([obj respondsToSelector:sel]) //判断对象是否有相应的方法
{ [obj performSelector:sel withobject];} //调用选择器
Bool YES(1) NO(0)
_BOOL true(>0) false(<=0)
协议:
@opotocal NSCopying
@required 定义必选方法
-(id) copyWithZone:(NSZone*)zone;
@optiona 定义可选方法
@end
协议扩展:
@opotocal NSCopying1 <NSCopying >
引用协议:
@interface test:NSObject <NSCopying ,NSCoding>
异常处理:
@try{
可能发生异常代码
@throw //抛出异常
}
@catch(NSEcception *exception){
//发生异常后的处理
NSlog(@”异常%@,%@”,[exception name],[exception reason]);
}
@fanally{
//无论是否发生必执行}
Nil 空对象
常用于dealloc方法
指针
Int* *num;指针变量
对象变量实际为指针
线程
@synchronized(object)
继承
方法重写(实现不同) 方法重载(参数不同)
Super表示父类
Self表示当前实例
抽象类 无定义抽象类特定关键字
动态方法调用(id)
可动态表示任意对象
访问控制
@protected
@private
@public
Category(类别)
为已存在的类添加方法而无需增加子类 如增加NSString类的方法
@interface NSString(Utilties)(无父类)
.....
@end
无参宏定义
如:#define PI 3.1415
有参宏定义
如:#define MAX(a,b) (a>b)?a:b
#运算符
在宏定义参数前放置一个# 预定义时会根据宏参数创建C风格的常量字符串
如:#define str(x) #x ---->str(test);---->"test"
import
类似C语言中的#include
条件编译
#ifdef 、#endif、 #else、 #ifndef
#if和#elif多判断预处理语句
#udef 将已定义的宏变为为定义
基础部分已完。