第十三条:用“方法调配”技术调试“黑盒方法”
类的方法列表会把选择子的名称映射到相关的方法实现上,使得动态消息能够根据此找到对应的方法,这些方法均以函数指针的形式来表示,其原型如下:
IOS常用宏定义&工具方法
Posted on
Edited on
总结一些工作中常用的宏定义和工具方法
Effective-Objective-c-2-0读书笔记(三)
Posted on
第九条:以类族模式隐藏实现细节
类族可以隐藏抽象基类的实现细节,其中IOS中常用的UIButton就是使用的这种模式。
1
+ (UIButton *)buttonWithType:(UIButtonType)type;
在具体实现中,会根据
type
的不同,调用不同子类的初始化方法。在具体的应用中,也可以使用这种模式,通过一个通用的基类创建不同的子类对象。
声明枚举类型
1
2
3
4
5typdef NS_ENUM(NSUInteger, EOCEmployeeType) {
EOCEmployeeTypeDeveloper,
EOCEmployeeTypeDesigner,
EOCEmployeeTypeFinance
}声明工厂方法
1
+ (EOCEmployee *)employeeWithType:(EOCEmployeeType)type;
实现工厂方法
1
2
3
4
5
6
7
8
9
10
11
12
13+ (EOCEmployee *)employeeWithType:(EOCEmployeeType)type {
switch (type) {
case EOCEmployeeTypeDeveloper:
return [EOCEmployeeTypeDeveloper new];
break;
case EOCEmployeeTypeDesigner:
return [EOCEmployeeTypeDesigner new];
break;
case EOCEmployeeTypeFinance:
return [EOCEmployeeTypeFinance new];
break;
}
}
Block备忘
Posted on
Edited on
Block
平常编程中经常用,对于Block语法感觉很怪异,有一些细节总是想不起来,今天正好看到了别人写点Block用法很巧妙,特意来总结一下。
Effective-Objective-c-2-0读书笔记(二)
Posted on
第五条:用枚举表示状态,选项,状态码
- 应该用枚举来表示状态机的状态,传递给方法的选项以及状态码等值,给这些值起个易懂的名字。
- 如果把传递给某个方法的选项表示为枚举类型,而多个选项又可以同时使用,那么就将各选项定义为2的幂,以便通过按位操作将其组合起来。
用
NS_ENUM
与NS_OPTIONS
宏来定义枚举类型,并指明其底层数据类型。1
2
3
4
5typedef NS_ENUM(NSUInteger, EOCConnectionState) {
EOCConnectionStateDisconnected,
EOCConnectionStateConnecting,
EOCConnectionStateConnected
}1
2
3
4
5
6typedef NS_OPTIONS(NSUInteger, EOCPermittedDirection) {
EOCPermittedDirectionUP = 1<<0,
EOCPermittedDirectionDown = 1<<1,
EOCPermittedDirectionLeft = 1<<2,
EOCPermittedDirectionRight = 1<<3,
}在处理枚举类型的switch语句中不要实现default分支。
IOS开发常用工具
Posted on
Edited on
工欲善其事,必先利其器。作为一个程序员好用的开发工具是十分重要的,下面总结下我日常使用的开发工具和软件,以防以后换了电脑还要一个个的找。