IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 【凤凤牌烤面筋】(持续更新……) -> 正文阅读

[移动开发]【凤凤牌烤面筋】(持续更新……)

面试时间2022.02.22
面试时长7min
面试结果未OC
公司杭州异世界

简单自我介绍

面试官问:平时怎么学习iOS的?是用的swift吗?看得懂OC吗?

技术题:

1.UIButton的响应者链是怎么样的?

iOS 从UIButton学习响应者链及相关技术_王颜华的博客-CSDN博客

答:UIButton->UIView(subView没有可忽略)->UIView(superView)->UIViewController->UIWindow(keyWindow)->UIApplication。

image-20220217215901959

? 事件的传递和响应的区别是:事件的传递从上到下(父控件到子控件),事件的响应从下到上(顺着响应者链条向上,子控件到父控件)。

2.说一下UIView和CALayer

  • 联系

    1. CALayer在UIView背后提供更加丰富灵活的图形操作,UIView作为CALayer的代理更加快速地帮CALayer显示一些常用的UI元素并提供交互。
    2. UIView是所有视图的基类,CALayer是图层类。事实上,UIView和CALayer是平行的层级关系。每一份UIView都有一个CALayer实例的图层属性,视图的责任就是创建并管理图层,以确保当子视图在层级关系中被添加或者被移除的时候,与它们相关联的图层也同样在层级关系树中有相同的操作。
  • 区别

    1. CALayer无法响应事件。UIView和CALayer的最明显区别在于他们的可交互性,即UIView可以响应事件,而CALayer不可以。原因可以从这两个类的继承关系上看出。UIView是继承自UIResponder的,决定了UIView类及其子类能够通过响应链(iOS通过视图层级关系来传递触摸事件)接收并响应用户事件。而CALayer直接继承于NSObject类,所以它不清楚具体的响应链,也就无法响应用户事件。
    2. 分工不同。UIView侧重于对显示内容的管理和整体布局,而CALayer侧重于显示内容的绘制、显示和动画。
    3. 所属框架不同。UIView类属于UIKit.framework框架的,UIKit框架主要就是用来构建用户界面的。CALayer类是属于QuartzCore.framework框架的,而且CALayer是作为一个低级的,可以承载绘制内容的底层对象出现在该框架的。
  • 两个嵌套的for循环的时间复杂度

    答:O(n^2)(有点弱智)

3.iOS里有几种访问权限?具体说明一下。

Swift中一共有五个级别的访问控制权限,从高到低依次是open,public,internal,fileprivate,private。它们遵循的基本规则是:高级别的变量不允许被定义为低级别变量的成员变量,比如一个private的class内部不允许包含public的string值,反正低级变量可以定义在高级别变量中。

  • open:具备最高访问权限,其修饰的类和方法,可以在任意模块中被访问和重写。
  • public:权限仅次于open,和open唯一的区别是:不允许其他模块进行继承和重写。
  • internal:默认权限,只允许在当前的模块中访问,可以继承和重写,不允许在其他模块中访问。
  • fileprivate:修饰的对象只允许在当前的文件中访问。
  • private:最低级别访问权限,只允许在定于的作用域内访问。

4.反问环节:

  • 您认为在iOS代码开发中最难的一点是什么?

    答:性能的不断升级。

  • 贵公司平时工作的配合机制是什么?

    答:利用Git协作。

公司谈烁科技
面试时间2022.02.28
面试时长25min
面试结果已OC

没有自我介绍,介绍了学了哪些课,挑了一些数理基础课,提到了C++和计算机网络,面试官很感兴趣,问计算机网络考了多少分,还问绩点怎么样。

1.怎么走上iOS开发这条路的?

  • 答:初试(大一下学期在iPhone11上玩伪代码的快捷指令) → 对Swift感兴趣 在iPad上玩playground → 加入iOS Club 系统化学习

2.Swift和学过的C++进行一个比较

  • 答:都是面向对象的。脑子里只记得面向对象和函数式编程是有区别的。

追问1:什么是面向对象?

答:不太清楚啊。参考答案:面向对象是把整个需求按照特点、功能划分,将这些存在共性的部分封装成对象,创建了对象不是为了完成某一个步骤,而是描述某个事物在解决问题的步骤中的行为

追问2:为什么要用面向对象编程呢?

  • 答:是为了特定地实现功能?面试官说函数式也行啊。参考答案:优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活。

3.谈谈学习Swift的体会

  • 答:“?”和“!”,可选型和强制解包。

追问1: 什么情况用optional,用optional会带来什么困扰?

  • 答:值可能不太明确,对判空有干扰。

4.项目相关

(1)做这个项目的历程是怎样的?

答:一开始是用约束拉的,之后用SnapKit做优化。

(2)constraints能随着用户需求变动吗?

  • 答:不可以(?)面试官纠正:其实是可以的,把它的约束拉到controller里面设置成变量就行。

(3)都用了什么控件?

  • 答:自上而下依次是UILabel,UITextField(自己糊涂了,其实也是UILabel的,面试官也糊涂了,跟着问了好久。。。),UIButton.

(4)怎么响应Button指令?

  • 答:通过touchUpInside实现的,面试补充了gesuture类

    追问1:touchUpInside是什么动作?

    答:是触摸屏幕拿起后响应的

(5)怎么按一下给Button改一个颜色?

  • 答:提到了用tag来区分,用UILabel的addTarget来扩展一个方法,用color属性实现。

    追问1:怎么操作这个方法呢?(有点疑惑)面试官提示是touchdown。

    追问2:那怎么实现渐变呢?(好像看过,说用外部框架吧,也没记住面试官怎么说的)

(6)你还用过哪些控件?

  • 答:TableView

    追问1:TableView是怎么样的?

    答:一开始记岔了,以为是navigation,很自信说是过渡。面试官疑惑,后来反应过来原来是列表

    追问2:你是怎么用的?需要设置哪些属性?

    答:蹦出了indexPath和row啊这些属性

    追问3:tableview是以行为主,那你知道以列为主的控件吗?

    答:不知道。面试官提示是collectionView.

    追问4:tableview两个很关键的协议是什么?

    答:delegate和datasource。

    追问5:怎样填充datasource?

    答:用Core Data数据库和SQLite数据库。

    追问6:用过HTTP请求进行网络数据的收集吗?

    答:这个还真没试过(其实之前试过,失败了,但是没啥操作印象)

沸点工作室是什么啊

  • 答:就是大家一起系统地学习技术的工作室(怪我没介绍好)

反问环节

CS-Notes (cyc2018.xyz)

2022届斩获BAT+TW外企Offer的双非硕士菜鸡学姐的秋招分享 - 知乎 (zhihu.com)

推荐这篇博文,反问环节有借鉴一点,个人觉得提到的问题很有水平。

问题1:请问作为iOS实习生,在贵公司工作的一天是怎样的呢?

  • 答:公司的主要业务主要是承接一些小型简单的App制作,这对实习生是十分友好的,一上来就能上手做任务,对人能力得到锻炼

问题2:请问针对刚刚的面试,您对我今后的iOS学习有什么建议吗?

  • 答:关键要在实践中学习。不要局限于那些小打小闹的练手项目,要向成熟的,企业型的,完备的项目进行挑战。
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-03 16:26:11  更:2022-03-03 16:28:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 16:57:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码