iOS开发Swift篇(02) NSThread线程相关简单说明 一 说明 1)关于多线程部分的理论知识和OC实现,在之前的博文中已经写明,所以这里不再说明. 2)该文仅仅简单讲解NSThread在swift语境中的一些使用和注意点,别他. 3)本文涉及代码可以从https://github.com/HanGangAndHanMeimei/Code地址获得. 二 NSThread的基本使用和创建 1)基本用法(主线程|当前线程) //1.获得执行该方法的当前线程 let currentThrea…
前言 对于iOS开发中的网络请求模块,AFNet的使用应该是最熟悉不过了,但你是否把握了网络请求正确的完成时机?本篇文章涉及线程同步.线程依赖.线程组等专用名词的含义,若对上述名词认识模糊,可先进行查阅理解后阅读本文.如果你也纠结于文中所述问题,可进行阅读希望对你有所帮助.大神无视勿喷. 在真实开发中,我们通常会遇到如下问题: 一.某界面存在多个请求,希望所有请求均结束才进行某操作. 对于这一问题的解决方案很容易想到通过线程组进行实现.代码如下: 1 2 3 4 5 6 7 8 9 10 11…
资源共享 1块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源 比如多个线程访问同一个对象.同一个变量.同一个文件 当多个线程访问同一块资源时,很容易引发数据错乱和数据安全问题   一.解决方案 解决方案:使用线程同步技术(同步,就是协同步调,按预定的先后次序进行) 常见的线程同步技术是:加锁   1.OSSpinLock OSSpinLock叫做”自旋锁”,等待锁的线程会处于忙等(busy-wait)状态,一直占用着CPU资源 目前已经不再安全,可能会出现优先级反转问题 如果等待锁…
面试题 请问以下代码打印结果: - (void)interview01 { // 以下代码是在主线程执行的 NSLog(@"执行任务1"); dispatch_queue_t queue = dispatch_get_main_queue(); dispatch_sync(queue, ^{ NSLog(@"执行任务2"); }); NSLog(@"执行任务3"); } 答案:没有打印,会产生死锁 原因: 判断是否死锁,由两个因素决定: 1.在当…
一.非对称加密 - RSA : + 公钥加密,私钥解密: + 私钥加密,公钥解密: + 只能通过因式分解来破解 二.对称加密 - DES - 3DES - AES (高级密码标准,美国国家安全局使用,iOS操作系统内部使用,目前还没有发现过被破解的案例) 三.哈希散列函数 (摘要算法) 1.常见算法 - MD5 - SHA1 - SHA256/512 2.散列函数特点 - 算法是公开的 - 对相同的数据加密,得到的结果是一样的 - 对不同的数据加密,得到的结果是一样长的32位字符 由a-Z 0-…
一.iPad简介 1.什么是iPad一款苹果公司于2010年发布的平板电脑定位介于苹果的智能手机iPhone和笔记本电脑产品之间跟iPhone一样,搭载的是iOS操作系统 2.iPhone和iPadiPhone是手机,iPad是平板电脑 iPhone和iPad开发的区别UI元素的排布 \设计键盘API屏幕方向的支持… … 3.屏幕的尺寸 \分辨率在iOS开发中,只需要关注以下几种情况iPhone3.5 inch:320 x 480 4.0 inch:320 x 5684.7inch : 375…
一.CoreLocation 在移动互联网时代,移动app能解决用户的很多生活琐事,比如周边:找餐馆.找KTV.找电影院等等导航:根据用户设定的起点和终点,进行路线规划,并指引用户如何到达 在上述应用中,都用到了定位和地图功能,在iOS开发中,要想加入这2大功能,必须基于2个框架进行开发CoreLocation :用于地理定位,地理编码,区域监听等(着重功能实现)MapKit :用于地图展示,例如大头针,路线.覆盖层展示等(着重界面展示) 2个热门专业术语LBS :Location Based…
一.简介 1.在移动互联网时代,移动app能解决用户的很多生活琐事,比如周边:找餐馆.找KTV.找电影院等等导航:根据用户设定的起点和终点,进行路线规划,并指引用户如何到达 在上述应用中,都用到了定位和地图功能,在iOS开发中,要想加入这2大功能,必须基于2个框架进行开发CoreLocation :用于地理定位,地理编码,区域监听等(着重功能实现)MapKit :用于地图展示,例如大头针,路线.覆盖层展示等(着重界面展示) 2.MapKit框架的使用MapKit框架使用前提导入框架(Xcode5…
最近闲来无事去面试一下iOS开发,让我感到吃惊的,面试官竟然问怎么分目录结构,还具体问每个子目录的文件名. 目录结构确实非常重要,面试官这么问,无疑是想窥探开发经验.清晰的目录结构,可让人一眼明白相应的业务和职能,这也能体现开发者的经验和架构水平. 目前,我接触过的项目中,比较常规的两种结构:1.主目录按照业务分类,内目录按照模块分类(主目录按照MVC架构分类,内部根据项目模块分类) 优点:相对比较快定位对应的业务.缺点:模块相关类太过分散,需要来回切换寻找文件,不方便开发. 2.主目录按照模块…
线程保活: 顾名思义,就是保护线程不死(保证线程处于激活状态,生命周期没有结束) 正常情况,当线程执行完一次任务之后,需要进行资源回收,也就意味着生命周期结束 应用场景: 当有一个任务,随时都有可能去执行它,那么应该放在子线程去执行,并且让子线程一直存活着,避免执行多次任务做多次创建销毁线程的动作,降低性能消耗 注意:只适用于非并发(一个线程嘛) 笔者利用runloop结合线程相关知识封装了一个小框架  https://github.com/chglog/CHGPermenantThread 提…