15 个最常问的 Swift 面试问题及答案

以下是 Swift 面试问题和答案,适合新手和经验丰富的 Swift 开发人员应聘者,以帮助他们获得理想的工作。


1)解释什么是 Swift 编程语言?

Swift 是一种用于创建 iOS 和 OS X 应用程序的编程语言和系统。它是一种针对 Cocoa 和 Cocoa Touch 的创新编程语言。

免费 PDF 下载:iOS Swift 面试问题和答案


2)解释一下如何在 Swift 语言中定义变量?

变量和常量必须在使用前声明。使用 let 关键字声明常量,使用 var 关键字声明变量。变量和字典都使用括号描述。例如,Var Guru99 = “This is Guru99” Let ksomeconstant = 30


3)swift中“?”的含义是什么?

如果声明了属性,问号会使该属性成为可选属性。如果属性没有值,“?”有助于避免运行时错误。


4)请提及 Swift 编程的特点是什么?

  • 它消除了所有不安全的代码
  • 变量总是在使用前初始化
  • 检查数组和整数是否溢出
  • 内存是自动管理的
  • 在条件编程中,Swift 不使用“if”语句,而是使用“switch”函数

5) 请说出 Swift 和“Objective-C”语言之间的区别?

“C” 和 “Swift” 语言之间的区别在于

Swift Objective-C的
  • 在swift中,变量和常量在使用前声明
  • 必须使用“let”关键字表示常量,使用“var”关键字表示变量
  • 代码不需要以分号结束
  • 在 swift 中连接字符串很容易,并且允许通过混合使用常量、文字、变量以及表达式来创建新的字符串
  • Swift 不需要像 Objective C 那样创建单独的接口。您可以在单个文件 (.swift) 中定义类
  • Swift 允许你在类、结构或枚举中定义方法
  • 在 Swift 中,使用“ += ”运算符来添加项目
  • 在 Objective C 中,必须将变量声明为 NSString,将常量声明为 int
  • 在 Objective C 中,变量声明为“,常量声明为“
  • 代码以分号结尾
  • 在目标 C 中,您必须在 NSMutableString 和 NSString 之间选择要修改的字符串。
  • 对于类,您可以为类创建单独的接口(.h)和实现(.m)文件
  • 客观上不允许这样做
  • 在 C 中,使用 NSMutable 的“addObject”:方​​法 排列 将新项目追加到数组中
斯威夫特面试问题
斯威夫特面试问题

6)请提及 Swift 有哪些类型的整数?

Swift 提供 8、16、32 和 64 位形式的无符号和有符号整数。与 C 类似,这些整数遵循命名约定。例如,无符号整数用类型 UInt8 表示,而 32 位有符号整数用类型 Int32 表示。


7) 请提及什么是浮点数以及 Swift 中浮点数的类型有哪些?

浮点数是带有小数部分的数字,例如 3.25169 和 -238.21。浮点类型可以表示比整数类型更广泛的值。有两种有符号浮点数

  • 双: 它表示一个 64 位浮点数,用于浮点值必须非常大的情况
  • 漂浮: 它代表一个 32 位浮点数,当浮点值不需要 64 位精度时使用它

8)解释如何在 swift 中编写多行注释?

多行注释可以写成斜杠加星号(/*),以星号加斜杠(*/)结尾。

iOS Swift
iOS Swift

9)什么是 de-initializer 以及它在 Swift 中如何编写?

在类实例被解除分配之前立即声明一个反初始化器。你可以用 deinit 关键字来编写反初始化器。反初始化器不带任何括号,也不接受任何参数。它写成如下形式:

deinit  {

// perform the deinitialization

}

10)请提及 Swift 中有哪些集合类型?

在 Swift 中,集合类型有两种:数组和字典

  • 阵: 你可以创建单一类型的数组,也可以创建多种类型的数组。Swift 通常更喜欢前者

单一类型数组的示例是,

Var cardName : [String] = [ "Robert" , "Lisa" , "Kevin"]

// Swift can infer [String] so we can also write it as:

Var cardNames = [ "Robert", "Lisa", "Kevin"] // inferred as [String]

要添加数组,您需要使用下标 println(CardNames[0])

  • 字典: 它类似于其他编程语言中的哈希表。字典使您可以存储键值对,并通过提供键来访问值
var cards = [ "Robert": 22, "Lisa" : 24, and "Kevin": 26]

11) 列出 Swift 中使用的控制转移语句有哪些?

Swift 中使用的控制转移语句包括

  • 继续
  • 午休
  • 失败
  • 回程

12)解释什么是可选链接?

可选链式调用是查询和调用属性的过程。多个查询可以链接在一起,如果链中的任何链接为 nil,则整个链式调用失败。


13) Swift 中如何定义基类?

在 Swift 中,类不会从基类继承,并且您定义的未指定其超类的类会自动成为基类。


14)解释什么是惰性存储属性以及它何时有用?

惰性存储属性用于在第一次使用之前不计算初始值的属性。您可以通过在声明前写入 lazy 修饰符来声明惰性存储属性。当属性的初始值依赖于值未知的外部因素时,惰性属性非常有用。


15)请提及 Swift 中 Switch 的特点是什么?

  • 它支持任何类型的数据,不仅可以同步,还可以检查相等性
  • 当 switch 中匹配到某个 case 时,程序会从该 switch case 退出,不再继续检查下一个 case。因此,你不需要在 case 末尾明确跳出 switch
  • Switch 语句必须是详尽的,这意味着你必须涵盖变量的所有可能值
  • switch 语句中没有 fallthrough,因此不需要 break

这些面试问题也会对你的口试有帮助

分享

16条评论

  1. 头像 世界之星制造仇恨 说:

    “Swift 是一种用于在 iOS 和 OS X 中创建 Web 应用程序的编程语言和系统”

    好吧,你可能让很多人搞砸了他们的面试。干得好。

    1. 错误已修复!感谢您告知我们

  2. 头像 尼列什·波尔 说:

    switch 语句中没有“fallthrough”吗?

    1. 头像 阿尔温德·欣迪亚 说:

      fallthrough 可用

  3. 头像 约瑟夫·R·安多姆 说:

    问题 3 – Swift 的部署方式并非如此。Swift 的部署方式是上传到 Apple 的网站。这是一个完整的过程。它与 JAR 或 Tomcat 无关。

  4. 头像 约瑟夫·R·安多姆 说:

    此外,Swift 确实有 if 语句。它不是代替 if 语句的 switch 语句。它是对 if 语句的补充。

    虽然确实没有隐式的失败,但可以明确地编程这种行为。

  5. 头像 阿尔温德·欣迪亚 说:

    这行是什么意思“在 Objective C 中,你必须将变量声明为 NSString,将常量声明为 int”

  6. 头像 拉姆·马德哈万 说:

    多谢,伙计。

  7. 头像 马赫什·维贾普尔 说:

    请验证您的答案。有些甚至与 iOS 无关

  8. 头像 萨布迪普 说:

    你能发一下 UI 面试问题吗?提前谢谢

  9. 头像 安布吉·舒克拉 说:

    这一行是什么意思:- 在 Objective C 中,变量被声明为“,常量被声明为“。

  10. 头像 穆纳夫 说:

    邮件标题中的“状态:可删除”是什么意思

  11. 请提及 Swift 和“Objective-C”语言有什么区别?
    “C” 和 “Swift” 语言之间的区别在于
    你应该澄清你的答案,你区分的是 Objective-C 和 Swift,而不是 C 和 Swift。

  12. 头像 泽尔卡帕迪亚 说:

    我明天要面试,这能帮助我通过面试吗?或者我还需要关注其他页面?如果我需要,请给我一些建议

发表评论

您的电邮地址不会被公开。 必填项 *