iOS混合开发笔试题

本试卷共25道单项选择题,每题4分,总分100分,请选择你认为正确的选项,每题仅有一个正确选项。
关于 Objective-C Runtime,描述正确的是?
Swift 所有代码都依赖 OC Runtime 运行
Method Swizzling 可动态交换方法实现,常用于全局埋点
Runtime 消息转发只能拦截实例方法,不能拦截类方法
SwiftUI 依靠 Runtime 完成视图渲染
MVVM 架构在 iOS 项目中的核心优势是?
ViewModel 强持有 View,直接操作 UI 控件
业务逻辑与视图解耦,ViewModel 便于单元测试
天然消除循环引用、内存泄漏
无需数据绑定就能自动刷新界面
iOS SwiftUI 开发常见痛点,说法错误的是?
SwiftUI 与 UIKit 混编存在生命周期协同问题
视图频繁重绘,需合理管理 State、Equatable 减少刷新
无法实现弹窗、列表等基础界面
存在系统版本兼容问题,低系统缺少部分 API
iOS 原生 + Vue H5 混合开发,描述错误的是?
通过 JSBridge 完成 Vue 前端与 iOS 原生双向通信
Vue 页面登录态、路由可由原生统一管控,实现无缝切换
Vue 页面可直接调用 iOS 全部系统权限,无需原生封装插件
需要统一处理缓存、鉴权、图片上传等跨端交互逻辑
项目同时存在 OC/Swift 原生、老旧 JSP 页面、Vue 新 H5,代码耦合严重,最优改造方案?
暂停业务,一次性全量重构所有代码
按业务拆分原生公共组件,统一 JSBridge 基础库,新需求渐进改造
全部页面迁移 Vue,直接废弃原生代码
删除旧代码重新从零开发
iOS 客户端生成二维码主流实现方式是?
CoreImage CIQRCodeGenerator,原图偏小,需二次缩放优化清晰度
UIKit 提供现成高清二维码顶层 API
无法在二维码中间添加 Logo
生成逻辑必须放在主线程执行
App 内置行情 K 线,自研封装对比开源组件,描述准确的是?
开源组件性能一定优于自研
自研方案自由度高,便于自定义指标、手势交互
海量行情渲染无性能压力
简单业务场景优先从零自研 K 线
下列 iOS 优化手段中,不属于 UI 渲染优化的是?
规避离屏渲染、优化圆角绘制方案
大图异步解码、图片按需懒加载
增加接口本地缓存,减少网络请求次数
减少图层重叠,简化视图层级
App 内嵌网页从 JSP 向 Vue 技术栈迁移,iOS 客户端适配思路正确的是?
一次性下线全部 JSP 页面,全量切换 Vue
新旧页面并行过渡,统一 JSBridge 协议,兼容登录态与原生交互
Vue 页面无法和 iOS 原生互相调用
迁移无需考虑缓存、接口鉴权相关逻辑
Swift 与 OC 混编开发,说法正确的是?
Swift 可直接调用 OC 所有私有方法
OC 调用 Swift 代码需要配置生成 Swift 头文件
Swift 结构体可直接被 OC 识别调用
@objc 修饰的 Swift 方法不参与消息转发流程
Objective-C 属性声明中,代表弱引用的关键字是?
strong
weak
copy
retain
Swift 中定义不可变常量使用的关键字是?
var
let
static
final
UIViewController 生命周期中,仅会执行一次的方法是?
viewWillAppear
viewDidLoad
viewDidLayoutSubviews
viewWillDisappear
iOS 页面自适应布局的核心技术是?
Frame-based Layout
Autolayout
StackView
Manual Constraints
SwiftUI 中管理视图内部局部可变状态的属性包装器是?
@State
@Binding
@ObservedObject
@EnvironmentObject
ARM64 架构下 Objective-C isa 指针的优化方式是?
直接存储类对象完整地址
使用共用体 union 搭配位域存储多种信息
通过全局哈希表管理类继承关系
废弃 isa 指针,改用 class 属性标识类型
OC Runtime 消息转发完整流程正确顺序是?
方法解析 → 快速转发 → 慢速转发
快速转发 → 方法解析 → 慢速转发
慢速转发 → 方法解析 → 快速转发
方法解析 → 慢速转发 → 快速转发
Runloop 核心作用不包含以下哪一项?
管理线程事件、消息循环
线程空闲时降低 CPU 占用
保障定时器精准触发
直接跨线程修改 UI 控件属性
NSTimer 默认添加到 Runloop 的模式是?
NSDefaultRunLoopMode
UITrackingRunLoopMode
NSRunLoopCommonModes
UIInitializationRunLoopMode
关于 iOS 静态库与动态库区别,说法错误的是?
动态库编译时链接,静态库运行时加载
动态库可减小安装包体积,多 App 可共享
静态库代码会完整复制进最终可执行文件
动态库升级需要处理版本符号兼容问题
Vue3 中,组合式 API 用来创建响应式基础数据类型的 API 是?
ref
reactive
computed
watch
Vue 项目嵌入 iOS WebView,JSBridge 调用原生方法最佳实践是?
直接频繁同步调用大量原生接口
统一封装调用方法,增加异常捕获、超时处理
不需要判断 WebView 环境,直接执行
回调函数名称随机生成,无需管理
Vue 生命周期中,组件 DOM 已经渲染完成,可以获取 DOM 元素的钩子是?
created
mounted
setup
unmounted
Vue 单页应用嵌入 App WebView,页面返回逻辑处理合理方案?
完全依靠系统返回键,不做处理
Vue 内部维护路由栈,监听原生返回事件,优先执行前端路由回退
所有返回直接关闭整个 WebView
前端不维护路由,全部交给 App 原生控制
Vue 双向绑定 v-model 底层原理依托于?
自定义属性 + update 事件
定时器轮询
原生 ajax 轮询
全局变量监听

25题 | 被引用0次

模板修改
使用此模板创建