(工作经验总结一二)队列--多个main的原因
1,项目创建最好有一个自己的继承于UIViewController的类,并且其他控制器继承这个控制器,灵活性较大,例如:
要给项目每个页面添加截图或用户操作轨迹记录等,这样就省去了到每个页面添加的麻烦,在这个父类中写逻辑即可!
2,不用所有的UI元素都在控制器里self.view addsubview,写多了确实很晕,逻辑与试图参合!自定义view类,加到控制器里解决.
3, 执行网络请求异步任务过多会耗费资源,最好用到队列 参考:http://blog.csdn.net/totogo2010/article/details/8013316
这里介绍专业级项目中用到的方法
结构:
1个继承NSOperation的类 MyOperation
1个继承NSObject的管理类,单例 TaskManager
NSOperation就和java.lang.Runnable接口很相似。和Java的Runnable一样,NSOperation也是设计用来扩展的,只需继承重写NSOperation的一个方法main。相当与java 中Runnalbe的Run方法。然后把NSOperation子类的对象放入NSOperationQueue队列中,该队列就会启动并开始处理它。
//执行任务的类
@interface MyOperation : NSOperation
@implementation MyOperation
//重载父类方法,队列自动执行main
- (void)main {
@autoreleasepool {
@try {
//主要代码
NSLog(@"+++++++++++++++++++++++++++++++++++++============================");
}@catch (NSException *e) {
//异常处理
}@finally {
//一般不写代码
}
}
}
@end
////////////////////////////管理执行任务的类
#import "MyOperation.h"
//这里简单测试,不写单例
@interface TaskManager : NSObject
{
//创建一个任务队列
NSOperationQueue *operationQueue;
}
- (void)startOperation;
@end
- (instancetype)init
{
self = [super init];
if (self) {
operationQueue = [[NSOperationQueue alloc]init];
//同时执行的任务数,主要就是为了它
operationQueue.maxConcurrentOperationCount = 1;
}
return self;
}
- (void)startOperation
{
MyOperation* op = [[MyOperation alloc]init];
[operationQueue addOperation:op];
}
//使用处调用
TaskManager *manager = [[TaskManager alloc]init];
[manager startOperation];
(工作经验总结一二)队列--多个main的原因的更多相关文章
- java后端程序员1年工作经验总结
java后端1年经验和技术总结(1) 1.引言 毕业已经一年有余,这一年里特别感谢技术管理人员的器重,以及同事的帮忙,学到了不少东西.这一年里走过一些弯路,也碰到一些难题,也受到过做为一名开发却经常为 ...
- 2年Java开发工作经验面试总结
最近换了个公司,从三月底开始面,面到四月底,面了有快二十家公司.我是一个喜欢总结经验的人,每经过一场面试,我在回来的路上都会仔细回想今天哪些问题可以答的更好,或者哪些问题是自己之前没遇到过的,或者是哪 ...
- 3年java工作经验必备技能
3年工作经验的Java程序员应该具备的技能 一.Java基础 1.String类为什么是final的. 2.HashMap的源码,实现原理,底层结构. 3.反射中,Class.forName和clas ...
- 教你写Makefile(很全,含有工作经验的)
Makefile 值得一提的是,在Makefile中的命令,必须要以[Tab]键开始. 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了 ...
- 一名3年工作经验的java程序员应该具备的职业技能
一名3年工作经验的Java程序员应该具备的技能,这可能是Java程序员们比较关心的内容.我这里要说明一下,以下列举的内容不是都要会的东西—-但是如果你掌握得越多,最终能得到的评价.拿到的薪水势必也越高 ...
- 精干货! Java 后端程序员 1 年工作经验总结
一.引言 毕业已经一年有余,这一年里特别感谢技术管理人员的器重,以及同事的帮忙,学到了不少 东西.这一年里走过一些弯路,也碰到一些难题,也受到过做为一名开发却经常为系统维护 和发布当救火队员的苦恼 ...
- 一名3年工作经验的java程序员应该具备的技能
一名3年工作经验的Java程序员应该具备的技能,这可能是Java程序员们比较关心的内容.我这里要说明一下,以下列举的内容不是都要会的东西—-但是如果你掌握得越多,最终能得到的评价.拿到的薪水势必也越高 ...
- Java2年开发工作经验面试总结
Java2年开发工作经验面试总结最近换了个公司,从二月底开始面,面到三月底,面了有快二十五家公司.我是一个喜欢总结经验的人,每经过一场面试,我在回来的路上都会仔细回想今天哪些问题可以答的更好,或者哪些 ...
- 超人学院二期学员分享hadoop工作经验
定于2月17日--2月23日的某一天,邀请咱们学员分享一下hadoop工作经验.对于没工作过的同学或者没从事过hadoop工作的同学,抓住机会啊,你可以提前准备自己关心的各种问题! 具体时间请关注QQ ...
随机推荐
- python中read、readline和readlines
f = file('test.txt' , 'r') all_data = f.read() # 字符串类型 f.read(8) #读取固定大小的 ...
- Hadoop-env.sh[翻译]
说明: 某天 ,把hadoop-env.sh的注释看了看 , 感觉受益匪浅,于是想要写一篇告诉大家,文档是最靠谱的,鉴于我的水平有限,只能翻译大概,切勿吐槽,提建议请留言 摘要: 1.这个文件中只有J ...
- 呆呆的io流输入输出的一些基础
关于io流的File类,下面来码一些基础属性: 文件的属性: /* public String getName() 获取文件的名字 public boolean canRead() 判断文件是否可以读 ...
- tableviewcell边距和设置值不符
解决方法: 将Table View Cell的Layout Margins由Default改为Explicit,然后修改上下左右的边距.
- Python的神奇方法指南
参考:http://article.yeeyan.org/view/311527/287706
- GL10控制图形旋转
GL10提供了glRotatef(float angle , float x , float y , float z)方法,该方法用于控制旋转,该方法种angle控制旋转角度:而x.y.z参 ...
- 提升WordPress站点速度的八个建议
WordPress是一个很棒的开源程序,几乎我认识的站长朋友当中,粗略估算有80%使用Wordpress.但很棒不等于完美,就在我所认识的这些朋友中,几乎所有人都会抱怨Wordpress太臃肿,运行效 ...
- 常州培训 day5 解题报告
第一题:(贪心) 题目大意:给出N*M的矩形,要用正方形将它铺满(正方形之间不能重叠),相邻的正方形颜色不能相同,颜色用ABCD表示.要求从上到下从左到右字典序最小. N,M<=100 解题过程 ...
- 学习KMP算法的一点小心得
KMP算法应用于 在一篇有n个字母的文档中 查找某个想要查找的长度为m的单词:暴力枚举:从文档的前m个字母和单词对比,然后是第2到m+1个,然后是第3到m+2个:这样算法复杂度最坏就达到了O(m*n) ...
- (DFS)hdoj1312-Red and Black
题目链接 非常简单的DFS,初学DFS做这道题很合适.需要注意的是题目中输入的行和列顺序是颠倒的. #include<cstdio> #include<cstring> usi ...