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学习有什么建议吗?

  • 答:关键要在实践中学习。不要局限于那些小打小闹的练手项目,要向成熟的,企业型的,完备的项目进行挑战。

面试公司万物心选
面试时间2022.03.04
面试时长20min
面试结果未OC

简单的自我介绍

  • 答:面试官您好,我叫王成凤,是华中农业大学信息管理与信息系统的一名大三在读的学生。学习iOS开发已经有一年了,平时主要是通过看教程视频,参考书以及练手一些小项目来学习的。

问项目

  • 答:一开始是用约束拉的,然后用SnapKit做了一个简单的优化。

iOS开发是兴趣还是只是想尝试?

  • 答:是通过iPad上玩Playgrounds小游戏产生浓厚的兴趣,之后加入学校的iOS Club系统的学习。

iOS Club是什么呢?

  • 答:是以参加WWDC和移动应用创新赛为长期目标的。

计算机网络相关

1. HTTP和HTTPS的区别?

  • 答:HTTP和HTTPS的端口不一样,HTTP是明文传输的,而HTTPS较HTTP要安全的,是密文传输的,因此也需要消耗更多的资源。

对称加密和非对称加密的区别?

  • 答:对称加密加密和解密的密钥是同一个,而非对称加密的加密和解密的密钥是不同的,区分为公钥和私钥。

在三次握手中,对称加密和非对称加密在什么时候会被应用?

  • 答:只记得会有三个随机数的生成

非对称加密的公钥和私钥以及对称加密的一对公钥放在哪?

  • 答:乱说的 公钥放在服务器,私钥放在客户端。公钥都放在客户端。

HTTP为什么要进行三次握手,为什么不是两次?

  • 答:为了避免重复连接。

Swift相关

有用过Swift进行网络请求数据并显示吗?

  • 答:暂时是没有的。啊~其实是有的,和风天气API请求JSON数据并且提取!(下次注意?已经两次没答出来啦)

    但是用过本地化存储core data数据库。

从你学习iOS以来只学了Swift吗?

  • 答:是的,还学了一下SwiftUI。

有用过final修饰符吗?

  • 答:暂时没有呢。

iOS里有什么列表的控件吗?

  • 答:UITableView和UIConlletionView。

如果要显示10行,那页面最多只能显示6行数据,那么需要加载6行还是110行呢?

  • 答:6行就可以了,UITableView的复用原理,reuserIdientifier标识一个唯一的复用标识符。避免反复的创建和销毁元素。

反问环节

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

  • 答:前期实习期会有相关的考核(记不太清了),前三个月会组织培训,系统学习一些企业的基础知识和使用,后期和产品经理对接,写一些小需求。

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

  • 答:大量从网络教程学习的话会比较零散,建议找一些书比如《iOS开发宝典》之类的,会比较系统的由浅入深地学习以及掌握一些底层知识;兼顾学习一下OC,目前很多公司都是用OC的。

面试公司阿里巴巴
面试时间2022.03.08
面试时长50min
面试结果应该凉了

简单自我介绍

什么是Apple新生代计划?

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

怎样学习iOS的?

以后的职业规划?

  • 答:以后想从事UI界面搭建和逻辑处理。面试官说要求有点低啊,这些在公司里面半年就能学到啦!而且公司的产品迭代速度是非常快的,对个人的成长也是非常大的。

聊项目

IB编程和纯代码编程的优劣

详细对比IB开发与纯手码开发的优劣。 - 董铂然 - 博客园 (cnblogs.com)

SnapKit和autoLayout自动布局的关系

Swift自动布局SnapKit的详细使用介绍 - 简书 (jianshu.com)

什么是autoLayout?

iOS 中 Auto Layout(自动布局)_krzover的博客-CSDN博客

AutoLayout是一种基于约束的,描述性的布局系统。可以让你通过创建元素之间关系的数学描述来布局应用程序的用户界面。关键字(元素,关系,约束,描述

什么是CocoaPods?

答:是为Xcode项目提供依赖管理的工具。iOS开发中不可避免地要使用各种第三方库,cocoaPod的出现使得我们可以**节省设置和更新第三方开源库的时间。**使用CocoaPods后只需要在Podfile写入需要用的第三方库。然后执行CocoaPods的命令,就会自动地将这些第三方库的源码下载到项目对应的Pods文件夹中,并且为项目设置好对应第三方库需要依赖的系统库和编译参数等。

iOS相关

Swift和你学过的python,C++比起来各有什么优劣?

如何优化卡顿的UITableView

追问:如何优化一个单纯的页面网络请求?

知道runtime吗?

Runtime有什么作用呢?

知道runloop吗?

struct和class有什么区别?

知道函数式编程吗?

用过defer修饰符吗?

知道代码运行成一个项目要经历哪些阶段吗?

面试官说没学过汇编原理吗?确实没有呢

首先iOS应用程序默认的启动过程是:

①.先加载Main函数

②.在Main函数里的 UIApplicationMain方法中,创建Application对象 创建Application的Delegate对象

③.创建主循环,代理对象开始监听事件

④.启动完毕会调用 didFinishLaunching方法,并在这个方法中创建UIWindow

⑤.如果有storyboard,会根据info.plist中找到应用程序的入口storyboard并加载箭头所指的控制器

⑥.设置UIWindow的根控制器是谁,如果Storyboard和手码都设置了根控制器,手码设置的根控制器会把手码的给替换了。

⑦.显示窗口

如果是纯代码的项目将不会有第五步。会直接在didFinishLaunching方法中找到UIWindow设置的根控制器,通过创建时的类型来决定控制器的类型。如果项目中使用了interface Builder的图形化界面,那么在程序启动过程中会经历第五步,并且需要将storyboard中的控制器与自己建立的类相关联。

算法相关

数组和链表的区别?

二叉树有哪几种遍历?

什么是二分查找?

二分查找的条件是什么?

面试公司贝格蓝斯
面试时间2022.03.09
面试时长50min
面试结果不知道

自我介绍

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

未来的职业规划是怎样的?

为什么会想到来深圳?

Swift相关

Swift和OC的优劣

iOS-Swift相比Objective-C有哪些优缺点 - 简书 (jianshu.com)

了解过泛型吗?

聊聊 iOS 中的泛型 - 简书 (jianshu.com)

深拷贝和浅拷贝的区别?

怎么把一个模型变成深拷贝?

iOS 模型数组深拷贝 - 简书 (jianshu.com)

了解block吗?

iOS Block - 简书 (jianshu.io)

了解循环引用吗?

同上,swift闭包

怎样避免循环引用呢?

Category和Extension的区别

TableView的复用原理

了解过KVC和KVO吗?

iOS实现多线程的几种方案?

关于网络请求的框架有了解过吗?

怎么实现给特定文字加下划线?

项目

简单介绍一下项目,怎么实现的?

封装计算类是什么?

SnapKit和autoLayout什么关系?

页面怎么适配刘海屏?

天气APP里,你怎么请求网络数据?

算法

输入一个字符串怎样逆序输出

知道哪几种排序?

快速排序和堆排序那个快?

快速排序的时间复杂度?

数组和链表的比较

栈和队列的比较

用过递归吗?

面试公司即刻App
面试时间2022.03.11 11:00
面试时长30min
面试结果未知

自我介绍

做过哪些项目?

答:仿照iOS原生的App,做过一些比如天气,计算器,提醒事项之类的。

做过哪些动画?

答:做过渐变动画以及手势动画。

显式动画和隐式动画的区别?(没答上来)

iOS 隐式动画和显式动画 - 作业部落 Cmd Markdown 编辑阅读器 (zybuluo.com)

隐式:==不需要初始化任何类,系统自己处理的动画属性。==之所以叫隐式,是因为并没有指定任何动画的类型。我们仅仅改变了一个属性,然后Core Animation来决定如何并且何时去做动画。

显式:自己创建一个动画对象并附加到layer上。

算法题:在一个单链表中,如果要删除倒数第n个元素怎么办?

目前为止做过最难的项目是什么?

加入工作室有做过一些项目吗?

View和View间传值的方式还有那些?

用过即刻App吗?

自己封装过一些网络框架吗?

了解过哪些设计模式?

frame和bound的区别?

了解过响应式编程吗?

五(二)

面试公司即刻App
面试时间2022.03.15
面试时长30min
面试结果已OC

自我介绍

要看项目源码,报了github账号

简单叙述项目

算法题

找出数组中第K大的数

iOS相关

IB编程和纯代码编程的优劣

swift和python的区别

计网,数据结构里印象最深刻的知识

最近在看什么书?

反问环节

  1. 好像忘了,每个人都有导师,前几个月导师辅导,代码review。

  2. 在学校编程是为了满足自己可以完成的需求来开发,需要来企业实习和PM多交流迎接新的挑战。

面试公司阿里巴巴(盒马)
面试时间2022.03.15 19:00
面试时长45min
面试结果不知道

简单自我介绍

问项目

项目最大的难点

问Apple Teacher

问创新创业奖

问在沸点工作室里主要干嘛

iOS相关

英语水平怎么样?

有没有知道哪些网络请求的第三方框架?

  • 答:AFNetworking,SDWebImage,Alamofire,以及SwiftJSON这些。

网络请求的话是放在主线程还是子线程?

  • 答:蒙了一个子线程

沙盒机制里Caches目录?

  • 答:Caches目录主要用来存放数据缓存文件,不能进行iTunes或者说iCloud备份,适合存储体积大,不需要备份的非重要数据。

App重新上架的话Caches数据还会不会存在?

  • 答:Caches的上级是Library目录,而Library目录下还有一个Preference目录,它主要用于存放应用程序的设置数据,能进行iTunes或者iCloud备份,通常保存应用的设置信息。

页面卡顿是怎么处理的?

  • 答了图片的存储

自己作死提到了离屏渲染和当前屏幕渲染,好像说错了

自己还提到了显示动画和隐式动画

iOS有哪些设计模式?

知道GCD吗

iOS中数据存储的方式有哪些?

追问:自己都用过哪些?

了解过闭包里的循环引用吗?

怎么避免循环引用?

知道strong,weak这些吗?

知道平衡二叉树吗?

算法

反转链表

反问

  1. 面试官说你面的是工程师啊,我说那好吧。解释了一大堆应届和实习的东西
  2. 给建议的话,面试官说,要拟一个框架和目标去学习
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-03-17 22:19:09  更:2022-03-17 22:21:48 
 
开发: 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 18:37:21-

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