/dailyCode

日常代码

Primary LanguageC

Swift

数据结构与算法

数据结构

  1. 链接
  2. 队列
  3. 哈希表
  • 7.树
    • 二叉树

算法

  • 寻找两个有序数组的中位数 链接
  • 求最长回文子串 链接
  • 寻找两个有序数组的中位数 链接
  • 最长回文子串 链接
  • 三数之和 链接
  • 合并两个有序链表 链接
  • 买卖股票的最佳时机 链接
  • 买卖股票的最大利润 链接
  • 删除链表的倒数第N个结点 链接
  • 有效的括号 链接
  • 爬楼梯 链接

iOS 屏幕旋转 & 状态栏

  • 参考工程 ScreenRotationDemo 链接
  • 各种屏幕旋转示例 链接
  • 状态栏示例 链接

iOS 内存管理

  • 1.讲一下 iOS 内存管理的理解?(三种方案的结合)
  • 2.使用自动引用计(ARC)数应该遵循的原则? 链接
  • 3.ARC自动内管管理的原则?
  • 4.访问 __weak 修饰的变量,是否已经被注册在了 @autoreleasePool 中?为什么?
  • 5.ARCretainCount 怎么存储的?
  • 6.简要说一下 @autoreleasePool 的数据结构?
  • 7.__weak__unsafe_unretained 的区别? 链接
  • 8.为什么已经有了 ARC ,但还是需要 @AutoreleasePool 的存在?
  • 9.__weak 属性修饰的变量,如何实现在变量没有强引用后自动置为 nil链接
  • 10.__strong原理
  • 11.说一下对 retain,copy,assign,weak,_Unsafe_Unretain 关键字的理解。
  • 12.ARC 在编译时做了哪些工作?
  • 13.ARC 在运行时做了哪些工作?
  • 14.函数返回一个对象时,会对对象 autorelease 么?为什么?
  • 15.野指针和悬垂指针的区别? 链接
  • 16.内存管理默认的关键字是什么?
  • 17.内存中的5大区分别是什么?
  • 18.是否了解 深拷贝浅拷贝 的概念,集合类深拷贝如何实现? 链接
  • 19.BAD_ACCESS 在什么情况下出现? 链接
  • 20.@dynamic@synthesize 区别? 链接
  • 21.@autoreleasrPool 的释放时机?
  • 22.retainrelease 的实现机制?
  • 23.简述 Dealloc 的实现机制?
  • 24.在 Obj-C 中,如何检测内存泄漏?你知道哪些方式?
  • 25.聊聊野指针与僵尸对象定位 链接

Runtime

Runloop

  • 0.RunLoop 详解 链接
  • 1.Runloop 和线程的关系? 链接
  • 2.讲一下 RunloopMode?(越详细越好) 链接
  • 3.讲一下 Observer ?(Mode中的重点) 链接
  • 4.讲一下 Runloop 的内部实现逻辑?(运行过程) 链接
  • 5.autoreleasePool 在何时被释放? 链接
  • 6.解释一下 事件响应 的过程? 链接
  • 7.解释一下 手势识别 的过程? 链接
  • 8.解释一下 GCDRunloop 中的使用? 链接
  • 9.解释一下 NSTimer,以及 NSTimer 的循环引用。 链接
  • 10.performSelector 相关方法的实现原理 链接
  • 11.利用 runloop 解释一下页面的渲染的过程? 链接
  • 12.如何使用 Runloop 实现一个常驻线程?这种线程一般有什么作用? 链接-参考线程保活篇
  • 13.为什么 NSTimer 有时候不好使?(不同类型的Mode) 链接-参考NSTimer计时不准的问题
  • 14.PerformSelector:afterDelay:这个方法在子线程中是否起作用?为什么?怎么解决? 链接
  • 15.什么是异步绘制? 链接
  • 16.如何检测 App 运行过程中是否卡顿? 链接

UIKit

  • 1.UIViewCALayer 是什么关系

- 2.iOS 中的事件响应 链接

Foundation

网络

  • 1.http
  • 2.https

多线程

  • 1.NSThread相关知识
  • 2.GCD 相关知识
  • 3.dispatch_semaphore_t 详解 链接

消息传递的方式

Block

  • 1.Block是什么? 链接
  • 2.Block 的内存管理。链接
  • 3.Block 自动截取变量。链接
  • 4.Block 处理循环引用。链接
  • 5.Block 有几种类型?分别是什么?链接
  • 6.Block函数指针 的区别? 链接

KVO

项目架构

Github

  • BSBacktraceLogger —— 轻量级调用栈分析器
  • AppPerformance —— App性能监控,包括:CPU占用率、内存占用大小、卡顿、启动闪退、崩溃、耗电量等。