主页

面试总结

一些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...

阅读更多

基础算法

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

阅读更多

数据结构的简单介绍

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

阅读更多

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

简单介绍一下这次模块化实践以及所遇到的一些问题 楔子 任何一个工程都会经历从无到有,从小到大的过程,这其中会遇到种种问题。譬如,工程成长到一定的阶段,势必想要进行模块化,一来可以让自己的工程看起来层次更清晰,不同模块独立性也更好,同时等工程到了一定规模,想要对外开放,实现开放平台,那么模块化就是必经之路。本文选择的模块化是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...

阅读更多

Weex学习笔记

本篇博客记录一下自己对Weex的一些学习过程 什么是Weex?Weex能做什么? Weex是阿里巴巴集团开源的一个动态化方案。 在我们对移动开发最佳实践的思考中,我们认为移动开发的未来是更平衡的方案,一定是性能和动态性兼得。第二个,它一定是开放互联的,PC端一直也是这样的, 也是非常好的状态。我们觉得移动互联网将来肯定也是基于更大众化的技术体系,没有平台之间的隔阂,简单直接易用,这是我们最希望看到的。基于这些设想,我 们有了Weex方案。 Weex编写的页面天然的支持组件化,首先,我们的界面可以是一个组件化的,把一个复杂界面分成每个组件,刚才演示的都是简单的组件,每个组件都可以看成是一段 template,style,script,放到模型里,对应到界面的结构,样式细节,...

阅读更多

iOS打点杂谈

本篇博客简单的介绍一下埋点以及埋点的一些功用,以及一些粗浅的认识 什么是打点? 首先简单介绍下什么是打点以及打点有什么作用,打点英文其实就是 Record 作用其实就是对想要关心的业务或者关键路径进行记录上传到特定的服务器便于后期分析。 打点分类 为了解决前端埋点的准确性、及时性、开发效率等问题,业内各家公司从不同角度,提出了多种技术方案,这些方案大体上可以归为三类: 代码埋点:手动使用 recordEvent 等方式埋点 声明式埋点:将代码埋点和业务逻辑解耦 无痕埋点:使用 AOP 进行埋点 代码埋点是一种典型的命令式编程,因此埋点代码常常要侵入具体的业务逻辑,这使埋点代码变得很繁琐并且容易出错。因此,最直接的做法就是将埋点代码与业务逻辑解耦。 比如: ...

阅读更多