Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >iOS面试系列·某安金融科技公司iOS开发面试回忆

iOS面试系列·某安金融科技公司iOS开发面试回忆

作者头像
陈满iOS
发布于 2020-06-02 07:18:14
发布于 2020-06-02 07:18:14
5720
举报
文章被收录于专栏:陈满iOS陈满iOS

面试的时候你可能碰到面试官设的各种坑:不止喜欢问你iOS开发的一些特性和方法,更喜欢喜欢问你这些特性及方法你觉得它是怎么实现的?你觉得苹果公司为什么要这样设计?

也许面试官自己也没自己实现过,毕竟有些东西苹果为什么这样设计,若不是苹果公司的工程师无法知道。

但作为面试者,这个些问题正是拉开差距的最好办法:不一定要你亲手用C去重现苹果的机制,但可以谈谈你的见解和看法。所以,这一块最好有个准备。

1. 用法实践篇

一般,会问你怎么实现某个模块,用过哪些API,介绍下他们的用法。

1.1 你以前的项目架构是怎样的?
  • 我用的MVVM,相对于传统的MVC,主要区别就是把网络请求和业务层放到ViewModel里面了。
  • 相对于普通博客介绍的View<->ViewModel <->Model,其实更靠谱的理解是View <-> C <-> ViewModel <->Model,把Controller加进去,更好的理解。
  • 然后,为了让View和ViewModel之间能够有比较松散的绑定关系,于是我们使用ReactiveCocoa,KVO,Notification,block,delegate和target-action都可以用来做数据通信,从而来实现绑定,但都不如ReactiveCocoa提供的RACSignal来的优雅,如果不用ReactiveCocoa,绑定关系可能就做不到那么松散那么好,但并不影响它还是MVVM。
  • 这里推荐一个MVVM基础框架:https://github.com/foxsofter/LPDMvvmKit
1.2 你是如何数据建模的?
  • 普通的办法就是建一个基类比如BaseModel,里面写好一些初始化的方法,然后新建一个子类比如UserModel,里面写好一些跟后台对应的字段,用它来接收数据或者保存数据。这一块可参考:https://www.jianshu.com/p/923404fcd2f2
  • 还有一种办法,就是封装一个功能,根据网络请求返回来的JSON数据自动生成Model文件,当然也提供特许字段的处理,比如id字段。它的缺点就是如果接口的JSON的数据是动态可变的,还是需要手动调整补充。这个可参考:https://blog.csdn.net/lg767201403/article/details/78675788
  • 当然,还有一种办法,就是有个软件叫JSONExport,可以实现上面封装的那个功能,不过这种方法生成的更慢。
1.3 你怎么实现字典转模型的?
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
聊聊iOS开发之MVVM的架构设计
而MVVM这种新的代码组织方式就可以解决这些问题,本文就MVVM的架构设计做个简单的个人总结。
進无尽
2018/09/12
8.8K0
聊聊iOS开发之MVVM的架构设计
【IOS开发高级系列】MVVM—ReactiveCocoa架构设计专题(一)
        MVC: Massive View Controller. Alot of the time, it’s convenient to put business logic and other code into viewcontrollers, even if that’s not architecturally the most sound place to put it.
江中散人_Jun
2023/10/16
5720
【IOS开发高级系列】MVVM—ReactiveCocoa架构设计专题(一)
iOS开发之ReactiveCocoa下的MVVM
最近工作比较忙,但还是出来更新博客了,今天给大家分享一些ReactiveCocoa以及MVVM的一些东西,干活还是比较足的。在之前发表过一篇博文,名字叫做《iOS开发之浅谈MVVM的架构设计与团队协作》,大体上讲的就是使用Block回调的方式实现MVVM的。在写上篇文章时也知道有ReactiveCocoa这个函数响应式编程的框架,并且有许多人用它来更好的实现MVVM。所以在上篇博客发表后,有些同行给评论建议看一下ReactiveCocoa的东西,所以就系统的看了一下ReactiveCocoa的东西。不过有一
lizelu
2018/01/11
1.4K0
iOS开发之ReactiveCocoa下的MVVM
iOS开发之ReactiveCocoa下的MVVM(干货分享)
转载:http://ios.jobbole.com/83602/ 最近工作比较忙,但还是出来更新博客了,今天给大家分享一些ReactiveCocoa以及MVVM的一些东西,干活还是比较足的。在之前发表过一篇博文,名字叫做《iOS开发之浅谈MVVM的架构设计与团队协作》,大体上讲的就是使用Block回调的方式实现MVVM的。在写上篇文章时也知道有ReactiveCocoa这个函数响应式编程的框架,并且有许多人用它来更好的实现MVVM。所以在上篇博客发表后,有些同行给评论建议看一下ReactiveCocoa的
VV木公子
2018/06/05
5.9K0
iOS面试经验总结(某PA金融科技篇)
也许面试官自己也没自己实现过,毕竟有些东西苹果为什么这样设计,若不是苹果公司的工程师无法知道。
陈满iOS
2018/09/10
8110
iOS面试经验总结(某PA金融科技篇)
【IOS开发高级系列】MVVM—ReactiveCocoa架构设计专题(三)
http://www.cocoachina.com/ios/20150123/10994.html
江中散人_Jun
2023/10/16
4600
【IOS开发高级系列】MVVM—ReactiveCocoa架构设计专题(三)
iOS开发笔记(一)
前言 iOS开发笔记(一) iOS开发笔记(二) iOS开发笔记(三) iOS开发笔记(四) 《开发笔记》系列记录一些开发中遇到的问题以及思考。 本文主要回答四个问题: 1、对MVVM框架的了解有哪些? 2、TextKit的认知与运用? 3、autorelease的原理是什么?weak修饰符是什么意思? 4、performSelector为什么会有内存泄露的提示? 正文 1、MVVM的一些看法 对MVVM(Model-View-ViewModel)的尝试源于用angular-js开发。 用过MVC
落影
2018/04/27
9690
iOS开发 MVVM+RAC 的使用Demo效果ReactiveCocoa简介Demo分析代码Demo地址
好长一段时间没有敲简书了! 主要是因为一直在跑面试。 终于还是在上海入职了! 由于项目原因最终还是入了MVVM+RAC的坑
gwk_iOS
2018/08/23
1.7K0
iOS开发 MVVM+RAC 的使用Demo效果ReactiveCocoa简介Demo分析代码Demo地址
【iOS开发】MVVM中使用RACCommand做网络请求
ViewModel里面有一个网络请求,在开始请求的时候要在页面上显示加载状态(转圈圈),结束请求的时候隐藏加载状态。
吴老师
2018/09/05
2.3K0
【IOS开发高级系列】MVVM—ReactiveCocoa架构设计专题(二)
        Streams 表现为RACStream类,可以看做是水管里面流动的一系列玻璃球,它们有顺序的依次通过,在第一个玻璃球没有到达之前,你没法获得第二个玻璃球。
江中散人_Jun
2023/10/16
3960
【IOS开发高级系列】MVVM—ReactiveCocoa架构设计专题(二)
iOS应用架构谈 view层的组织和调用方案 pragma mark - life cyclepragma mark - life cyclepragma mark - getters and set
前言 《iOS应用架构谈 开篇》出来之后,很多人来催我赶紧出第二篇。这一篇文章出得相当艰难,因为公司里的破事儿特别多,我自己又有点私事儿,以至于能用来写博客的时间不够充分。 现在好啦,第二篇出来了。 当我们开始设计View层的架构时,往往是这个App还没有开始开发,或者这个App已经发过几个版本了,然后此时需要做非常彻底的重构。 一般也就是这两种时机会去做View层架构,基于这个时机的特殊性,我们在这时候必须清楚认识到:View层的架构一旦实现或定型,在App发版后可修改的余地就已经非常之小了。因为它跟业务
rectinajh
2018/05/17
9910
iOS面试题:MVVM和MVC的区别
你可能试着把它放在Model对象里,但是也会很棘手,因为网络调用应该使用异步,这样如果一个网络请求比持有它的model生命周期更长,事情将变的复杂。显然View里面做网络请求那就更格格不入了,因此只剩下Controller了。若这样,这又加剧了Massive View Controller的问题。若不这样,何处才是网络逻辑的家呢?
猿_人类
2019/07/04
1.4K0
iOS面试题:MVVM和MVC的区别
iOS架构设计:揭秘MVC, MVP, MVVM以及VIPER
你将了解到在iOS环境下如何进行系统架构设计。我们将简单回顾一些流行的框架,并通过实践一些小例子来比较它们的理论。
iOSSir
2023/03/19
1.4K0
iOS架构设计:揭秘MVC, MVP, MVVM以及VIPER
阿里腾讯百度头条美团iOS 面试大纲,5万+的工作在等你
面试基本已经结束了,目前已拿头条、百度、腾讯offer,现在可以好好来写写总结了,关于面试题,可能没那么多时间来总结答案,有什么需要讨论的地方欢迎大家指教。主要记录一下我的准备过程,和面试的一些总结,希望能帮助到正在面试或者将要面试的同学吧。
java爱好者
2019/06/18
9470
iOS面试知识总结之功能区分
凡经历过iOS面试的我们总会发觉,即使实际开发中做过许多项目,也难免为一个普通的面试题受挫。这也许不是因为我们技术不过关,而是因为在平时我们忽略了怎样将用到的知识很好的表述出来。闲暇之余我把一些常见的iOS面试问题总结一下,即使不是为了面试,也有助于对基础知识的回顾。 此篇总结在iOS中遇到的有关概念或功能相似的,容易混淆的知识点: 1.区分UDID与UUID UDID(Unique Device Identifier)用户设备唯一编码 UDID是一串由40位16进制数组成的字符串,用以标识唯一的设备。
梧雨北辰
2018/04/24
8840
iOS 开发面试通关指南:67 个必知问题!
我们都知道,面试可能会让人感到压力山大——不管你是第一次参加面试的新手,还是已经有几年开发经验做背书的业内人士,面试都会带来压力。
iOSSir
2020/04/03
1.2K0
【前端面试题】2021/3/15面试题
所有的 JavaScript 对象都会从一个 prototype(原型对象)中继承属性和方法。
孙叫兽
2021/03/19
1K0
【前端面试题】2021/3/15面试题
iOS开发·KVC:字典转模型,防止因本地未定义字段(后台的字段与本地字符串名不一致)导致数据转换过程中的奔溃
更重要的是,有时候在iOS面试的时候,部分面试官会不仅问你某种场景会用到什么框架,更会问你如果要你来实现这个功能,你有没有解决思路?所以,自己实现字典转模型还是有必要掌握的。有了这个基础,在利用运行时runtime的动态特性,你也可以实现这些第三方框架。
陈满iOS
2018/09/10
1.5K0
面试|2021 菜鸟金三银四铜五 Android 被锤历程出炉...
对于跳槽,个人其实相对比较抵触,相比来来回回跳,内心更趋向于随着公司的成长而成长...
贺biubiu
2021/09/07
9600
iOS开发之浅谈MVVM的架构设计与团队协作
今天写这篇博客是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正。本篇博客的内容沿袭以往博客的风格,也是以干货为主。 由于本人项目经验有限,关于架构设计方面的东西理解有限,我个人对MVVM的理解主要是借鉴于之前的用过的MVC的Web框架~在学校的时候用过ThinkPHP框架,和SSH框架,都是MVC的架构模式,今天MVVM与传统的MVC可谓是极为相似,也可以说是兄弟关系,也就是一家人了。 说道架构设计和团队协作,这个对App的开发还是比较重要的。即使作为一个专业的搬砖者
lizelu
2018/01/11
1.3K0
iOS开发之浅谈MVVM的架构设计与团队协作
推荐阅读
相关推荐
聊聊iOS开发之MVVM的架构设计
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档