iOS面试--最新快手iOS面试题

这篇博客详细记录了快手iOS面试过程,涵盖了一面到三面的面试题,包括Objective-C的基础知识如property、内存管理、GCD、设计模式,以及算法和实际问题解决。面试题涉及数组、字典选择、深拷贝与浅拷贝、Runtime、KVC/KVO、二叉树、Swift与OC的比较等多个方面,展现了面试的深度和广度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

面的是快手X3岗位,视频面试,不支持周末,但是可以选择晚上时间。视频面试是通过牛客网进行的,以下是记下来的各轮面试题,对于一些iOS基础知识就不做解答了。

一面 正在跳转(iOS高级开发技术交流裙 进裙密码:123)
1、用递归写一个算法,计算从1到100的和。

func sum(value: Int) -> Int {
    if value <= 0 {
        return 0
    }
    var number = value
    return value + sum(value: number - 1)
}
// 计算过程
let result = sum(value: 100)
print(result)

写完算法之后又围绕着问了几个问题,都是算法基础:正在跳转(iOS交流裙 密码:123)
算法的时间复杂度是多少
递归会有什么缺点
不用递归能否实现,复杂度能否降到O(1)

2、property的作用是什么,有哪些关键词,分别是什么含义?
3、父类的property是如何查找的?
4、NSArray、NSDictionary应该如何选关键词?
5、copy和muteCopy有什么区别,深复制和浅复制是什么意思,如何实现深复制?
6、用runtime做过什么事情?runtime中的方法交换是如何实现的?
7、讲一下对KVC合KVO的了解,KVC是否会调用setter方法?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值