iOS面试 swift篇
swift基础目录
- class和struct区别
- swift扩展
- Set独有的方法
- map,filter,reduce作用
- map和flatmap 的区别
- 什么是 copy on write?
- guard使用场景
- defer 使用场景
- string和nsstring区别
- 什么时候使用 final
- dynamic 的作用
- 什么时候使用 @objc
- swift相对于oc优点
- swift中的closure于OC中block的区别?
- swift中协议试编程?
- swift元组
class和struct区别
class为引用类型,struct为值类型,struct不可以继承
引用类型:赋值享用同一内存地址,拷贝为浅拷贝
值类型:赋值时会重新创造一个新的内存地址,拷贝为深拷贝
swift扩展
swift中没有分类,通过扩展实现相同效果
Set独有的方法
取并集 a|b union
取交集 a&b intersection
取差集 a-b subtracting
取对称差集 a-b | b-a symmetricDifference
map,filter,reduce作用
map:映射 将一个列表转化为另一个列表
filter:筛选 筛选出想要的元素
reduce:把数组元素组合计算为一个值,并且会接受一个初始值,这个初始值的类型可以和数组元素类型不同
map和flatmap 的区别
flatmap会丢掉返回值为nil的元素
flatmap会降低数组维数
什么是 copy on write?
swift中值类型并不是开始赋值时就去赋值,而是在需要写入时才去复制
guard使用场景
guard与if类似,但是guard在解包(Optional)时更优雅,即解包的作用域更广
defer 使用场景
defer语句块中代码,会在当前作用域结束前调用。多个defer时,后加入的先执行
string和nsstring区别
string是值类型,nsstring是引用类型
什么时候使用 final
final用于限制继承和重写
dynamic 的作用
swift是一门静态语言,若想实现kvo这种效果,需在属性前加上dynamic
什么时候使用 @objc
swift和oc混编时,能够正常调用swift代码
swift相对于oc优点
简单易读,代码量少,更加清晰,易于维护
更加安全,optional的使用
泛型,结构体,枚举都很强大
函数式编程(map,faltmap,filture,reduce)
协议试编程
swift中的closure于OC中block的区别?
closure是匿名函数,block为结构体对象
closure修改外部变量的值不用加__block
逃逸闭包:一个传入函数的闭包如果在函数执行结束之后才会被调用,那么这个闭包就叫做逃逸闭包。
swift中协议试编程?
协议可以通过扩展,写方法的实现,类遵守当前协议,即可调用方法。
swift元组
(a,b) = (b,a) 可以实现值得交换
iOS面试 swift篇相关推荐
- iOS开发Swift篇—(六)流程控制
iOS开发Swift篇-(六)流程控制 一.swift中的流程控制 Swift支持的流程结构如下: 循环结构:for.for-in.while.do-while 选择结构:if.switch 注意:这 ...
- 李洪强iOS开发Swift篇—02_变量和常量
李洪强iOS开发Swift篇-02_变量和常量 一.语言的性能 (1)根据WWDC的展示 在进行复杂对象排序时Objective-C的性能是Python的2.8倍,Swift的性能是Python的3. ...
- android 无appid分享_App ID 和Bundle ID 有什么不同?ios面试攻克篇(六)
'写在前面的话' 这些是我对iOS面试时会碰到的问题的解决方法,整理出来分享给大家,有些错误不要 笑了,希望对大家有所帮助.大家有更好的解决办法也欢迎沟通交流. 一直以来都有写点儿东西的想法,就从笔记 ...
- 分割view窗口不响应onmousewheel_什么是响应者链?ios面试攻克篇(三)
'写在前面的话' 这些是我对iOS面试时会碰到的问题的解决方法, 整理出来分享给大家,有些错误不要 太好笑,希望对大家有所帮助. 大家有更好的解决办法也欢迎沟通交流. 一直以来都有写点儿东西的想法, ...
- 什么是cocoa和cocoa Touch?iOS面试攻克篇(一)
'写在前面的话' 这些是我对iOS面试时会碰到的问题的解决方法,整理出来分享给大家,有些错误不要 笑了,希望对大家有所帮助.大家有更好的解决办法也欢迎沟通交流. 一直以来都有写点儿东西的想法,就从笔记 ...
- pythonios脚本语言-iOS开发Swift篇—(一)简单介绍
一.简介 Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为"雨燕",是它的LOGO 是一只燕子,跟Objective-C一样,可以用于 ...
- iOS开发Swift篇—(七)函数(1)
一.函数的定义 (1)函数的定义格式 1 func 函数名(形参列表) -> 返回值类型 { 2 // 函数体... 3 4 } (2)形参列表的格式 形参名1: 形参类型1, 形参名2: 形参 ...
- iOS开发Swift篇—(三)字符串和数据类型
一.字符串 字符串是String类型的数据,用双引号""包住文字内容 let website = "http://www.github.com" 1.字符串的 ...
- iOS面试准备 - ios篇
iOS面试准备 - ios篇 ios面试准备 - objective-c篇 ios面试准备 - 网络篇 IOS面试准备 - C++篇 iOS面试准备 - 其他篇 运行时 https://juejin. ...
- ios面试准备 - 网络篇
iOS面试准备 - ios篇 ios面试准备 - objective-c篇 ios面试准备 - 网络篇 IOS面试准备 - C++篇 iOS面试准备 - 其他篇 http和https是什么?http和 ...
最新文章
- create-react-app支持antd按需导入
- linux之reboot
- android studio 单步调试jni,android studio实现Jni单步调试-标准配置教程
- swift学习笔记之-析构过程
- c++11: less的用法
- 例题2-1 在屏幕上显示一个短句。
- angular新版 父组件修改子组件某个div样式
- 我的梦想是十年内成为架构师,该怎么办?
- 特殊的求和(函数和循环)
- jpannel设置位置xy_实用的摄影技巧!10种常见摄影场景的单反相机设置技巧!
- CentOs中iptables配置允许mysql远程访问
- 关于 p3p ie 跨域 问题
- redis持久化功能
- Bootstrap 源码版文件结构
- 如何开始rails项目
- ES6(Module 模块化)
- 一份针对于新手的多线程实践
- mysql点击计数器_高性能Mysql(第3版)_网站点击计数器
- 删除数组中指定元素_删除js数组中的指定元素,有这两步就够了
- 软件测试基础知识大全(新手入门必备)