随笔分类 - 李洪强经典面试题
摘要:李洪强iOS经典面试题 1. struct和class的区别 swift中,class是引用类型,struct是值类型。值类型在传递和赋值时将进行复制,而引用类型则只会使用引用对象的一个"指向"。所以他们两者之间的区别就是两个类型的区别。 class有这几个功能struct没有的: class可以继
阅读全文
摘要:李洪强iOS经典面试题36-简单介绍 ARC 以及 ARC 实现的原理 问题 简单介绍 ARC 以及 ARC 实现的原理。 考查点 ARC 是苹果在 WWDC 2011 提出来的技术,因此很多新入行的同学可能对此技术细节并不熟悉。但是,虽然 ARC 极大地简化了我们的内存管理工作,但是引用计数这种内
阅读全文
摘要:李洪强iOS经典面试题37-解释垃圾回收的原理 问题 我们知道,Android 手机通常使用 Java 来开发,而 Java 是使用垃圾回收这种内存管理方式。 那么,ARC 和垃圾回收对比,有什么优点和缺点? 考查点 此题其实是考查大家的知识面,虽然做 iOS 开发并不需要用到垃圾回收这种内存管理机
阅读全文
摘要:李洪强iOS经典面试题35-按层遍历二叉树的节点 问题 给你一棵二叉树,请按层输出其的节点值,即:按从上到下,从左到右的顺序。 例如,如果给你如下一棵二叉树: 3 / \ 9 20 / \ 15 7 输出结果应该是: [ [3], [9,20], [15,7] ] 代码模版 本题的 Swift 代码
阅读全文
摘要:李洪强iOS经典面试题34-求两个链表表示的数的和 问题 给你两个链表,分别表示两个非负的整数。每个链表的节点表示一个整数位。 为了方便计算,整数的低位在链表头,例如:123 在链表中的表示方式是: 3 -> 2 -> 1 现在给你两个这样结构的链表,请输出它们求和之后的结果。例如: 输入: (2
阅读全文
摘要:李洪强IOS经典面试题 33-计算有多少个岛屿 问题 在一个地图中,找出一共有多少个岛屿。 我们用一个二维数组表示这个地图,地图中的 1 表示陆地,0 表示水域。一个岛屿是指由上下左右相连的陆地,并且被水域包围的区域。 你可以假设地图的四周都是水域。 例一: 11110 11010 11000 00
阅读全文
摘要:李洪强iOS经典面试题32-简单介绍 ARC 以及 ARC 实现的原理 问题 简单介绍 ARC 以及 ARC 实现的原理。 考查点 ARC 是苹果在 WWDC 2011 提出来的技术,因此很多新入行的同学可能对此技术细节并不熟悉。但是,虽然 ARC 极大地简化了我们的内存管理工作,但是引用计数这种内
阅读全文
摘要:李洪强iOS经典面试题31-解释垃圾回收的原理 问题 我们知道,Android 手机通常使用 Java 来开发,而 Java 是使用垃圾回收这种内存管理方式。 那么,ARC 和垃圾回收对比,有什么优点和缺点? 考查点 此题其实是考查大家的知识面,虽然做 iOS 开发并不需要用到垃圾回收这种内存管理机
阅读全文
摘要:李洪强iOS经典面试题30-一个区分度很大的面试题 考察一个面试者基础咋样,基本上问一个 @property 就够了: @property 后面可以有哪些修饰符? 线程安全的: atomic,nonatomic 访问权限的 readonly,readwrite 内存管理(ARC) assign,st
阅读全文
摘要:热修复也是在线修复。由于苹果的审核周期相对较长,遇到重大bug怎么办呢?这时候热修复就显得特别重要。 我也是最近了解到热修复,参考相关资料,来和大家分享一下我所了解到的热修复。 JSPatch,也是今天的主角,这个方案小巧易懂,一个IOS开发者很容易就能上手,它巧妙的运用了runtime的消息转发机
阅读全文
摘要:李洪强iOS经典面试题156 - Runtime详解(面试必备) 一、runtime简介 RunTime简称运行时。OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消息机制。 对于C语言,函数的调用在编译的时候会决定调用哪个函数。 对于OC的函数,属于动态调用过程,在编译的时候并不能决
阅读全文
摘要:李洪强iOS经典面试题155 - const,static,extern详解(面试必备) 一、const与宏的区别(面试题): const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量。 执行时刻:宏是预编译(编译之前处理),const是编译阶段。 编
阅读全文
摘要:李洪强经典面试题 154- 性能优化 性能优化 文字是以前收集的,国外大牛写的,忘记原文链接了。 入门级 用ARC管理内存 在正确的地方使用 reuseIdentifier 尽量把views设置为透明 避免过于庞大的XIB 不要阻塞主线程 在Image Views中调整图片大小。如果要在UIImag
阅读全文
摘要:李洪强iOS经典面试题154- 通知与推送 通知与推送 本地通知和远程推送通知对基本概念和用法? image 本地通知和远程推送通知都可以向不在前台运行的应用发送消息,这种消息既可能是即将发生的事件,也可能是服务器的新数据.不管是本地通知还是远程通知,他们在程序界面的显示效果相同,都可能显示为一段警
阅读全文
摘要:李洪强iOS经典面试题153- 补充 补充 有空就来解决几个问题,已经懒癌晚期没救了。。。 UML 统一建模语言(UML,UnifiedModelingLanguage)是面向对象软件的标准化建模语言。UML因其简单、统一的特点,而且能表达软件设计中的动态和静态信息,目前已成为可视化建模语言的工业标
阅读全文
摘要:李洪强经典面试题152-Runtime Runtime Runtime是什么 Runtime 又叫运行时,是一套底层的 C 语言 API,其为 iOS 内部的核心之一,我们平时编写的 OC 代码,底层都是基于它来实现的。比如: [receiver message]; // 底层运行时会被编译器转化为
阅读全文
摘要:李洪强经典面试题151-安全机制 安全机制 苹果的安全机制有哪些 没经过用户同意,你不能随便获取用户信息。 所有的程序都在沙盒里运行,B程序不能进入A程序的运行范围。 如果跟钱有关,比如说支付宝,这些底层的实现都是保密的,只提供接口供开发者调用,这样的话安全性得到保障。 如果要防止代码被反编译,可以
阅读全文
摘要:李洪强经典面试题149-多媒体 多媒体 iPhone OS主要提供了几种播放音频的方法? SystemSound Services AVAudioPlayer 类 Audio Queue Services OpenAL 使用AVAudioPlayer类调用哪个框架、使用步骤? AVFoundatio
阅读全文
摘要:李洪强经典面试题150-设计模式 设计模式 从设计模式的角度分析Delegate、Notification、KVO的区别 三者优缺点: delegate的优势: 1.非常严格的语法。所有将听到的事件必须是在delegate协议中有清晰的定义。 2.如果delegate中的一个方法没有实现那么就会出现
阅读全文
摘要:李洪强经典面试题148-多线程 多线程 你们项目中为什么多线程用GCD而不用NSOperation呢? 你有没有发现国外的大牛他们多线程都是用NSOperation? 你能告诉我他们这样做的理由吗? 关系: ①:先搞清两者的关系,NSOpertaionQueue用GCD构建封装的,是GCD的高级抽象
阅读全文