主页

一些相关知识点

对称加密 定义 对称加密是指加密和解密的密匙为同一个,用来加密数据的密匙也可以用来解密 特点 加密速度快,使用简单 对称加密的破解难度是随着钥匙的大小增加而增加的,钥匙越大就越难破解,但是钥匙越大相应的解密的时间也会越长 对称加密的问题 双方都必须先约定好加密规则 秘钥数目难于管理。因为对于每一个合作者都需要使用不同的秘钥,很难适应开放互联网中的大量的合作者交流。 无法适用于陌生的网络的环境,双方都必须是可信任的才可进行。 非对称加密 定义 非对称加密的秘钥是成对的(公钥和私钥)。私钥由自己安全保管不外泄,而公钥则可以发给网络中的任何人。 非对称加密适用这对秘钥中的一个进行加密,而解密则需要另一个秘钥。根据公钥是无法推导出私钥的。 特点...

阅读更多

面试总结

一些iOS的面试记录 如何访问并修改一个类的私有属性 KVC runtime 创建一个Father类,声明一个私有属性name,并重写description打印name的值,在另外一个类中通过runtime来获取并修改Father中的属性 #import <objc/runtime.h> @interface Father : NSObject @property(nonatomic, copy) NSString *name; @end @implementation Father - (NSString *)description { return [NSString stringWithFormat:@"name: %@", _nam...

阅读更多

算法举例

一些算法举例 排序算法 首先看一张图: 这里就不多解释了,下面抽几个排序简单讲下。 成功 信息 Warning Text. Error Text. success info warning error 冒泡排序 算法步骤 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一队到结尾的最后一对。这步做完后,最后的元素会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 动图演示 代码实现: func bubbleSort(arr: inout [Int]) { for i in 0..&...

阅读更多

基础算法

基础算法介绍 时间复杂度分析 算法思想 贪心算法 分治 动态规划 回溯法 枚举法 元算法 排序算法 排序算法是一种元算法。 O (N^2) 插入排序 选择排序 希尔排序 冒泡排序 O(nlogn) 快排 归并排序 堆排序 O(n) 桶排序 计数排序 基数排序 查找算法 线性查找 树查找 散列表查找 二叉树的遍历算法 概述 二叉树作为一个基础的数据结构,遍历算法作为一个基础的算法,两者结合当然是经典的组合了。有直接问二叉树的遍历的,有间接问的。比如要你找到书中满足条件的节点,就是间接考察树的遍历,因为你要找到书中满足条件的点,就需要遍历。 如果掌握了二叉树的遍历,那么其他复杂的树相对于你来说,也并不遥远...

阅读更多

数据结构的简单介绍

简单介绍一下这次模块化实践以及所遇到的一些问题 数据结构 分类 数据结构是算法基础,线性结构有 数组,栈,链表等,非线性结构有树,图等(树可以被看作半线性的) 需要注意的湿,线性和非线性不代表存储结构湿线性和非线性的,这两者没有任何关系,它只是一种逻辑上的划分。比如我们可以用数组去存储二叉树 一般而言,有前驱和后继的就是线性数据结构比如数组和链表。其实一叉树就是链表 几种特殊数据结构的简单讲解 默认大家是有一定基础的,所以讲的比较简单 队列 队列是一种受限的序列,它只能操作队首和队尾,并且只能在队尾添加元素,在队首删除元素 “队列”这个名称,可类比为现实生活中排队(不插队的那种) 栈 栈也是一种受限的序列,它只能够操...

阅读更多

偶来无聊, 拙笔涂鸦几首

此篇博客纯属个人兴趣爱好, 突然兴起, 胡乱涂鸦之作, 止增笑耳 灼夏 灼,夏日,炎炎; 受,东风,徐徐; 漫,杠彴,慢慢; 看,卷云,片片; 回思昨日穿林打叶声, 竹杖芒鞋轻胜马, 管他风雨管他晴。 窗外 窗外马路等压, 小桥流水人家, 电脑书桌代码, 妖风阵阵, BUG何时得挂。 酒翁 酒自穿肠过,言从口中出; 情在心中留,意比磐石坚; 若卿有踟蹰,便倚胸中听; 绝无二三意,自始终如一。 酒乃前世药,来解今时忧; 无论今前世,不管酒前后; 铮铮铁板书,片字不得改。 人生在世几十载,失了智,又何妨; 离了爹妈断了奶,赢了你,夫何求。 以梦为马,不负韶华 十年望飘影,踟蹰未前行,后母方穷转银河, 断了金盾,知了冷暖,梦已难成, 风雨故人情,一载难稳定,云滇船头倾沧...

阅读更多

模块化实践以及私有库相关介绍

简单介绍一下这次模块化实践以及所遇到的一些问题 楔子 任何一个工程都会经历从无到有,从小到大的过程,这其中会遇到种种问题。譬如,工程成长到一定的阶段,势必想要进行模块化,一来可以让自己的工程看起来层次更清晰,不同模块独立性也更好,同时等工程到了一定规模,想要对外开放,实现开放平台,那么模块化就是必经之路。本文选择的模块化是cocoapods私有库+spec,同样也提供了二进制化方案,方便2中方式,一种是源码形式,一直是framework形式。 本文简洁明了,适合已近对cocoapods有一定基础的读者,如何安装,怎样使用,这边就不赘述了,直接进入主题,一切都是从简单实用为出发点,都是本人自己实践过的。 Podspec以及一些常用命令 pod lib lint –allow-w...

阅读更多

UIWebView和WKWebView的一些比较

介绍一下UIWebView和WKWebView 楔子 在我们使用UIWebView的过程中应该有发现UIWebView可是个吃内存的大户,动辄就是上百兆的内存,虽说现在iPhone的性能越来越好,但是也经不住如此折腾啊,况且,一个APP如果占用的系统内存超过整机内存总数的一半时是会被优先kill掉的。 WKWebView 是苹果在 WWDC 2014 上推出的新一代 webView 组件,用以替代 UIKit 中笨重难用、内存泄漏的 UIWebView。WKWebView 拥有60fps滚动刷新率、和 safari 相同的 JavaScript 引擎等优势。 下面就简单讲讲 UIWebView的内存问题以及一些改进方式 部分App(好吧,可能说很多)喜欢将UIWebView的fr...

阅读更多