iOS开发面试题汇总

非游戏类,初级面试
  常见问题
  1.你昨天/这周学习了什么?
坦白点说,学习笔试面试后发现自己知识点不足的地方
  2.你为什么热衷于软件开发?
因为有趣,可以做出一些自己感觉到有成就感的东西,就是帮助别人解决问题。
  
  3.是否参与过GitHub项目?
  4.是否参与过GitHub或其他同类型网站的iOS开源项目?
  5.请描述一下你的iOS应用开发流程。
  6.是否熟知CocoaPods?它是什么?如何运行的?
Cocoapods是一个用来管理第三方库的比较好用的管理工具。
  7.请概括一下你对软件授权的理解,及其对软件开发的影响。
  8.请概括一下你在构建iOS应用时的测试过程。iOS应用如何实现对其他语言、日期格式以及货币单位的支持?
  9.请描述一下Instruments及其作用。
***
  关于iOS技术
  请解释一下Handoff是什么,并简述它是如何实现iOS、Mac/网页应用互通的。
  iCloud包含了哪些技术与服务?
  iOS扩展是指?能否列举一些热门或常见的范例?
  HealthKit是什么?
  HomeKit是什么?
  Apple Pay是什么?能否描述一下如何在应用中使用Apple Pay?
  请解释一下iOS应用沙盒机制。
是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容。所有的非代码文件都保存在这个地方,比如图片、声音、属性列表和文本文件等

iOS应用是如何实现后台多任务处理(Multitasking)的?
  Cocoa/Cocoa Touch是什么?
由苹果公司提供的软件开发api, 用于开发 iPhone\iPod\iPad上的软件。也是苹果公司针对iPhone应用程序快速开发提供的一个类库。
  请概括一下Core Audio,Core Data以及Core Location各是什么。它们对iOS应用有何意义?
  请描述SpriteKit和SceneKit的作用。
  Metal是什么?
  响应链(Responder Chain)是什么?它是如何发挥作用的?
  按钮和其他控制方式对哪些操作做出回应?
  AppDelegate扮演着什么样的角色?
  请解释一下NSUserDefaults。就你而言,你会如何在磁盘中对数组对象进行序列化?
  你会如何储存用户的认证信息?
  请问何为Keychain服务?
  为什么移动设备上的缓存和压缩是不可或缺的?
  请解释一下/Documents,/Library和~/tmp。 iOS中的~属于什么目录?
  AirPlay是如何运行的?换做是你,你会如何通过编程提高应用的实用性以及演示效果?
  传感器,IO以及WiFi、拨号等连接方式如何在iOS平台上运作?它们有何利用价值?请扼要地谈谈你的观点。
  iPad 2,iPad mini 1-3,iPad Retina,iPad Air 2,iPhone 5、5S、6以及6+在硬件性能方面有何差异?这对注重性能的应用有何限制?


关于编程
  Cocoa /Cocoa Touch包含什么?不包含什么?
a:相同之处:两者都包含OC运行时的两个核心框架:
cocoa包含Foundation和AppKit框架,可用于开发Mac OS X系统的应用程序
cocoa touch包含Foundation和UIKit框架,可用于开发iPhone OS 系统的应用程序
Cocoa是Mac OS X的开发环境,cocoa Touch是 Iphone OS的开发环境

为什么Cocoa Touch的类名称是以两个大写字母开头的?
a:苹果的命名规范,避免命名冲突

请说明如何使用Instancetype及其重要性。
a:instancetype可以返回和方法所在类相同类型的对象,id只能返回未知类型的对象;
instancetype只能作为返回值,不能像id那样作为参数
重要性:编译器就能够根据返回的数据类型检测出该对象是否实现某某方法。有利于开发者在编译阶段发现错误。

为什么map函数必不可少?该在什么情况下使用它?
  你会选择什么工具来追踪Bug?
  如果在Cocoa中发现一个Bug,你会如何处理?
  如果应用的新版本出现了Regression的情况,该如何补救?如何防止用户在使用过程中遇到新的Bug?
  Objective-C的类是怎么执行的?Objective-C Runtime是如何实现的?
  iOS是如何提高安全性,保护用户隐私信息的?
  应用可以下载并即刻显示数据。如何根据MVC来判断下载的最佳位置?
  MVC对代码库(Codebase)的设计有何影响?
  Controller Life-Cycle以及View Life-cycle分别有哪些调试方法?
  iOS使用的是哪些设计模式(Design Patterns)?你的代码库使用的是哪些设计模式?
  iOS提供哪些线程?如何充分利用这些线程?
  请简要描述一下UIScrollView的执行过程。它是如何响应手势识别(Gesture Recognizer)、多点触控(Multi-Touch)和Run Loop的?
  你认为iOS需要添加或改进哪些API?


关于界面
  iPhone5、6、6+以及iPad Air 2的屏幕分辨率分别是多少?
  
分辨率的计算单位是什么?
a:像素
  请解释一下Interface Builder的作用以及NIB文件的概念。
a:用于设计和测试用户界面
Nib文件是一种特殊类型的资源文件,它用于保存iPhone OS或Mac OS X应用程序的用户接口。Nib文件是Interface Builder文档。

iOS UI的图像储存类型是什么?
  请描述一下Storyboard和标准NIB文件的差别。
  设备状态栏(Device Status Bar)是什么?高度如何?是否透明?在手机通话或者导航状态下,它是如何显示的?
  导航栏(Navigation Bar)是什么?能否拿出你的iPhone,指出你下载的哪些应用运用了导航栏?
  选项卡(Tab Bar)和工具栏(Toolbar)分别是什么?两者之间有何共同点和不同点?
  表视图(Table View)是什么?集合视图(Collection View)又是什么?

什么时候用“弹出(Popover)”属性最为合适?

Split-view Controller是什么?
a:分割视图控制器

选取器视图(Picker View)适合存放哪类内容?
  应该在什么情况下使用标签、文本域和文本视图?

分段控件(Segmented Control)的作用是什么?
a:分段的控制、页面的切换等。

模态视图(Modal View)是什么?
a:比如UIAlertView,它就是一个模态视图。对于模态视图和普通视图最主要的区别就是模态视图显示的时候不能对其他视图进行操作

iOS通知属于什么类型?
***
  关于设计
  iOS应用图标是指什么?请尽可能详细地描述一下。
  最小尺寸和最大尺寸的应用图标分别是什么样子的?
  应用图标能否包含透明的部分?
  Newsstand的图标与常规应用有何不同?
  请解释一下启动画面(Launch Images)。
  自动布局(Auto Layout)的作用是什么?请概括一下它是如何运行的。
  设计软件时为什么要加上动画?
  请描述一下软件设计中的交互和Feedback有什么作用。
  设计iPhone和iPad应用时,应分别考虑哪些因素?
  请描述一下原型设计对于软件开发的意义。其作用是什么?


关于App Store
  应用内购买(In-App Purchases)是怎么回事?IAP能够为用户带来哪些新体验?
  你是否在App Store上发布过应用?能否概括一下过程?

iTunes Connect是什么?
a:是面向应用开发人员的一个门户网站,允许开发人员管理其应用,跟踪下载情况。
  Provisioning Profiles是指?
a:需要创建一个自动配置文件(provisioning profile),应用程序才能在设备上运行
  App ID是什么?
a:苹果应用程序的唯一标识

iOS的开发和发布签名证书有何异同?
a:开发证书是用来测试的,需要将设备绑定到账号,才可以识别,在真机调试的时候可以看程序打印;发布证书主要用来打包发布APP用的,也可用于真机调试,但是看不到程序打印

如何使用TestFlight?通过Ad-hoc发布应用的话,该如何使用UUID?
  应何时验证购买收据?
  发布iAds(苹果平台广告)有哪些要求?
  ***
趣味问答
  最近有没有开发什么好玩的东西?你最引以为豪的作品是什么?

谈一谈你常用的开发工具都有哪些优势?

你最敬佩的独立Mac或者iOS应用开发者是谁?
a.李明杰

最喜欢什么项目?哪种类型的?
a.实用型的项目,办公或者社交类型的

你觉得Xcode有哪些需要改进的地方?

iOS上你最喜欢哪些API?
a:最喜欢GPS和陀螺仪等传感器的API,可以开发很多有意思的应用程序

是否有最中意的错误报告?
  你最爱以哪种方式来检验一项新技术是否好用?

你可能感兴趣的:(iOS开发面试题汇总)