APP(iOS烂笔头---您的iOS面试备考神器!)
该APP除了包含完整的内容,还有AI知识扩展。使用便捷、欢迎下载。
一、简介
1、SwiftUI和Combine分别是什么?
(1) SwiftUI是声明式UI框架
(2) Combine是响应式编程框架,是用于处理数据流的,SwiftUI背后的数据处理的部分工作便是依赖于Combine框架。
2、Swift与ObjC的最重要区别
Swift提倡面向协议编程,ObjC提倡面向对象编程
3、响应式编程的核心是什么?
由状态驱动UI
4、编程思维分为哪两类?
传统指令式编程和函数响应式编程
二、你好,SwiftUI
1、指令式编程和声明式编程的区别
(1) 指令式编程:是教会计算机“怎么做”,它偏向于是“写给计算机的语言”。
(2) 声明式编程:是告诉计算机“做什么”,它偏向于是“写给人看的语言”。它通常是使用函数式或DSL(如数据库查询的SQL)方式来实现。
2、什么是声明式UI开发
(1) 代表UI层的View,一般来说并不是真实负责渲染的传统意义的视图层级,而是一个“虚拟的” 对View组织关系的描述(声明)。
(2) 决定UI的用户状态State被存储在某个或某几个对象中。
(3) 用一个函数描述View,这个函数的输入参数是State,即View = f(State)。
(4) 框架在State 改变时,调用上述函数获取对应新的State 的View,并与当前的View 进行差分计算,并重新渲染更改的部分。
(5) View = f(State),其中f是纯函数,也就是对于某个特定的State输入,所对应的View是确定的。
3、什么是view modifier?
作用于某个view,并生成原来值的另一个版本。它分为两类:
(1) 原地型modifier:定义在具体类型上,然后返回同样类型的modifier
(2) 封装类modifier:定义在view扩展中,将原view进行包装并返回新view的modifier
4、SwiftUI的用户界面是如何被驱动的?
在SwiftUI里,用户界面是严格被数据驱动的:在运行时,任何对于界面的修改,都只能通过修改数据来达成,而不能直接对界面进行调整和操作。相比于传统的UIKit 或AppKit,这在一定程度上对灵活性进行了