//
// main.m
// 03-Block的使用场景
#import <Foundation/Foundation.h>
/**
模拟星期一上班的具体情况
*/
void goToWorkInDay1()
{
NSLog(@"起床");
NSLog(@"刷牙");
NSLog(@"穿衣服穿鞋");
NSLog(@"出门");
NSLog(@"搭公交");
NSLog(@"抵达公司");
// 实事
NSLog(@"了解项目的需求");
// 实事
NSLog(@"叮咚叮咚 下班了");
NSLog(@"搭公交");
NSLog(@"回家");
NSLog(@"睡觉");
}
void goToWorkInDay2()
{
NSLog(@"起床");
NSLog(@"刷牙");
NSLog(@"穿衣服穿鞋");
NSLog(@"出门");
NSLog(@"搭公交");
NSLog(@"抵达公司");
// 实事
NSLog(@"熟悉公司以前的代码");
// 实事
NSLog(@"叮咚叮咚 下班了");
NSLog(@"搭公交");
NSLog(@"回家");
NSLog(@"睡觉");
}
void goToWorkInDay3()
{
NSLog(@"起床");
NSLog(@"刷牙");
NSLog(@"穿衣服穿鞋");
NSLog(@"出门");
NSLog(@"搭公交");
NSLog(@"抵达公司");
// 实事
NSLog(@"开始编写代码");
// 实事
NSLog(@"叮咚叮咚 下班了");
NSLog(@"搭公交");
NSLog(@"回家");
NSLog(@"睡觉");
}
int main(int argc, const char * argv[])
{
@autoreleasepool {
}
return 0;
}
上面垃圾代码。可使用block重构
//
// main.m
// 03-Block的使用场景
#import <Foundation/Foundation.h>
typedef void (^WorkBlock)();
void goToWork(WorkBlock workBlock)
{
NSLog(@"起床");
NSLog(@"刷牙");
NSLog(@"穿衣服穿鞋");
NSLog(@"出门");
NSLog(@"搭公交");
NSLog(@"抵达公司");
// 实事
// 调用block之前一定要做判断
if (workBlock != nil) {
workBlock();
}
// 实事
NSLog(@"叮咚叮咚 下班了");
NSLog(@"搭公交");
NSLog(@"回家");
NSLog(@"睡觉");
}
/**
模拟星期一上班的具体情况
*/
void goToWorkInDay1()
{
goToWork(^{
NSLog(@"了解项目的需求");
});
}
void goToWorkInDay2()
{
// 实事
goToWork(^{
NSLog(@"熟悉公司以前的代码");
});
// 实事
}
void goToWorkInDay3()
{
// 实事
goToWork(^{
NSLog(@"开始编写代码");
});
// 实事
}
void test(int (^myblock)(int num1, double num2, char num3))
{
}
int main(int argc, const char * argv[])
{
@autoreleasepool {
//// goToWorkInDay3();
// test(^int(int num1, double num2, char num3) {
//
// });
// WorkBlock block = ^{
// NSLog(@"-------------------");
// };
//
// goToWork(block);
}
return 0;
}
567



被折叠的 条评论
为什么被折叠?



