1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Temperature {
var value: Float = 37.0
}
class Person {
var temp: Temperature?
func sick() {
temp?.value = 41.0
}
let A = Person()
let B = Person()
let temp = Temperature()
A.temp = temp
B.temp = temp
复制代码
有想要领取免费资料的可以进裙或者加好友领取,这⾥有⼀个iOS交流圈: 可以来了解,分享BAT,阿⾥⾯试题、⾯试经验,讨论技
术,裙⾥资料直接下载就⾏, ⼤家⼀起交流学习!
2022年最新iOS⾯试题(附答案)
最近⼤家都要准备去⾯试或者已经在⾯试的,这⾥我给⼤家准备了挺多资料,可以私信我拿,看看了解下。底下就是我整理出来的⼀些⾯试
题
iOS 类(class)和结构体(struct)有什么区别?
Swift 中,类是引⽤类型,结构体是值类型。值类型在传递和赋值时将进⾏复制,⽽引⽤类型则只会使⽤引⽤对象的⼀个"指向"。所以他们两
者之间的区别就是两个类型的区别。
举个简单的例⼦,代码如下
有想要的⾯试资料或者其他资料也可以找我,欢迎咨询!需要的可⾃⾏下载
A.sick() 上⾯这段代码,由于 Temperature 是 class ,为引⽤类型,故 A 的 temp 和 B 的 temp指向同⼀个对象。A 的 temp修改了,B
的 temp 也随之修改。这样 A 和 B 的 temp 的值都被改成了41.0。如果将 Temperature 改为 struct,为值类型,则 A 的 temp 修改不
影响 B 的 temp。
内存中,引⽤类型诸如类是在堆(heap)上,⽽值类型诸如结构体实在栈(stack)上进⾏存储和操作。相⽐于栈上的操作,堆上的操作更
加复杂耗时,所以苹果官⽅推荐使⽤结构体,这样可以提⾼ App 运⾏的效率。
class有这⼏个功能struct没有的:
class可以继承,这样⼦类可以使⽤⽗类的特性和⽅法 类型转换可以在runtime的时候检查和解释⼀个实例的类型 可以⽤deinit来释放资源
⼀个类可以被多次引⽤ struct也有这样⼏个优势:
结构较⼩,适⽤于复制操作,相⽐于⼀个class的实例被多次引⽤更加安全。 ⽆须担⼼内存memory leak或者多线程冲突问题
什么是GCD ?谈谈你对GCD的理解?
GCD是Grand Central Dispatch的缩写。
Grand Central Dispatch (GCD)是Apple开发的⼀个多核编程的较新的解决⽅法。在Mac OS X 10.6雪豹中⾸次推出,并在最近引⼊到了
iOS4.0。
- 1
- 2
- 3
前往页