iOS开发基础知识
在快节奏的开发环境中,很多时候容易忽视的这些概念
SKyu4
纸上得来终觉浅...
展开
-
什么是“懒加载”(Lazy Loading)?
“懒加载”也被叫作“延迟价值”,它的核心思想是把对象的实例化延迟到真正调用该对象的时候,这样做的好处是可以减轻大量对象在实例化时对资源的小号,而不是在程序初始化的时候就预先将对象实例化。另外“懒加载”可以将对象的实例化代码从初始化方法中独立出来,从而提高代码的可读性,以便于代码能够更好地组织。最典型的一个应用“懒加载”的例子是在对象的getter方法中实例化对象,例如getter方法被重写,使...原创 2019-10-29 11:13:25 · 13905 阅读 · 0 评论 -
Objective-C和Swift的区别是什么?
Objective-C的语法比较复杂,学习成本非常高,其复杂主要体现在它的类的创建、函数的实现和其他的高级特性上。Swift是2013年苹果发布的一种新的iOS开发语言,其目的在于替代复杂的Objective-C。Swift的设计借鉴了目前比较流行的几种开发语言。例如Python、Ruby等,使得Swift用起来非常简单、快捷,它比Objective-C的学习成本更低,对开发者来说也更容易上手...原创 2019-10-29 11:01:42 · 1785 阅读 · 0 评论 -
Xcode项目中target和scheme的区别是什么?
简单地说,target包含了所有的源文件,它来决定编译哪些文件。一个project可以包含一个或多个target。scheme定义了一个target集合,它来决定运行和构建哪个target。...翻译 2019-10-29 10:48:16 · 1331 阅读 · 0 评论 -
Xcode项目中workspace与project的区别是什么?
workspace是一个文档的集合,它可以包括许多个project,并管理着project之间的关系,它为不同project之间的调用提供了解决方法。需要指出的是,workspace在Xcode中以xcworkspace文件形式存在,就是我们使用CocoaPods后的产物。可以吧project看成一个仓库,用来存放一个项目中所有用到的资源,它能包含多个target,并定义那个target作为最...翻译 2019-10-29 10:45:25 · 7333 阅读 · 0 评论 -
什么事LLVM和Clang?Clang与GCC有什么区别?Clang如何使用?
这个问题主要讲Xcode编译器的认知,在学习iOS之前有必要学习一下Objective-C的编译环境。在了解LLVM和Clang之前,先得了解一下什么是编译器。编译器是一种计算机程序,它将某种编程语言(高级编程语言)写成的源代码转换成另一种编程语言(低级编程语言)。一个现代编译器的主要工作流程为:源代码->预处理器->编译器->目标代码->链接器->可执行程序...原创 2019-10-29 10:36:39 · 9253 阅读 · 0 评论