杏仁丶的iOS学习专题

iOS 各种常见问题

2017-05-03  本文已影响210人  神魔狼

常见问题

你昨天/这周学习了什么?
自己扯
你为什么热衷于软件开发?
自己扯
你对哪一种控制系统比较熟悉?
自己扯
是否参与过GitHub项目?
自己扯
是否参与过GitHub或其他同类型网站的iOS开源项目?
自己扯
请描述一下你的iOS应用开发流程。
自己扯
是否熟知CocoaPods?它是什么?如何运行的?
自己扯
请概括一下你对软件授权的理解,及其对软件开发的影响。

参考链接:http://www.cnblogs.com/ioriwellings/p/5066652.html

1.(非对称加密就是指加密密钥和解密密钥是不同的,而且加密密钥和解密密钥是成对出现。
    非对称加密又叫公钥加密,也就是说成对的密钥。
    著名的RSA算法就是非对称加密算法,RSA以三个发明人的首字母命名。
    非对称加密算法如此强大可靠,却有一个弊端,就是加解密比较耗时。
    因此,在实际使用中,往往与对称加密和摘要算法结合使用。)
2.(摘要算法是指,可以将任意长度的文本,通过一个算法,得到一个             
    固定长度的文本。
    这里文本不一定只是文本,可以是字节数据。
    典型的摘要算法,比如大名鼎鼎的MD5和SHA。)
    理解了非对称加密和摘要算法,来看一下数字签名。实际上数字签名就是两者结合。
3.数字签名
假设,我们有一个APP需要发布,为了防止中途篡改APP内容,保证APP的完整性,以及APP是由指定的私钥发的。
首先,先将APP内容通过摘要算法,得到摘要,再用私钥对摘要进行加密
得到密文,将源文本、密文、和私钥对应的公钥一并发布即可。
那么如何验证呢?验证方首先查看公钥是否是私钥方的,然后用公钥对密文进行解密得到摘要,将APP用同样的摘要算法得到摘要,
两个摘要进行比对,如果相等那么一切正常。这个过程只要有一步出问题就视为无效。
请概括一下你在构建iOS应用时的测试过程。iOS应用如何实现对其他语言、日期格式以及货币单位的支持?

自己看: http://www.cocoachina.com/ios/20151120/14258.html

请描述一下Instruments及其作用。

自己看: http://www.jianshu.com/p/92cd90e65d4c

关于iOS技术

请解释一下Handoff是什么,并简述它是如何实现iOS、Mac/网页应用互通的。

mac iphone ipad 三者互联通信,Handoff 可与邮件、Safari、Pages、Numbers、Keynote、地图、信息、提醒事项、日历和通讯录配合使用,并且苹果还允许 Handoff 功能被集成在第三方应用上,可见此功能的潜力将是非常大的。举一个简单的例子,当你在 iPhone 上编写一封邮件时,走到 Mac 电脑旁边,而这时邮件并没有编写完成,此时就可以直接在 Mac 继续编写那封未完成的邮件。相信这对于很多朋友将会是一个非常实用,人性化的功能。但是也有不方便的时候,比如来了电话,几个设备同时响铃,而且有时候信号不好,响铃不会因为你接起一个设备以后其他设备自动挂断。

如何实现??? 不知道!!!

iCloud包含了哪些技术与服务?

icloud是同步备份服务。跟网盘是两回事。
音乐图片存到icloud也只是供您将来恢复用的,如果你在本地删除了音乐照片,不仅仅在手机上无法查看使用,同步之后icloud云端对应的音乐图片也会删除掉,这就叫同步。
icloud是一系列服务的技术封装,主要包括各个平台的信息同步(比如你在手机上存了某个人的号码,那登录了该iCloud账号的ipad上的通讯录内也会有这个号码)
另一个主要功能就是备份恢复,也就是说你手机初始化之后,可以通过之前在iCloud的备份直接进行内容恢复。
而网盘是对指定文件的上传下载,和备份、同步的概念是有区别的!也就是说你无法像操作网盘一样把暂时不用的文件放在icloud上,想用的时候再取回来。

iOS扩展是指?能否列举一些热门或常见的范例?

作用:
· 能为某个类附加额外的属性,成员变量,方法声明
· 一般的类扩展写到.m文件中
· 一般的私有属性写到类扩展
使用格式:

@interface Mitchell()
//属性
//方法
@end
HealthKit是什么?

http://www.cocoachina.com/ios/20140915/9624.html

HomeKit是什么?

http://www.cocoachina.com/ios/20150324/11411.html

Apple Pay是什么?能否描述一下如何在应用中使用Apple Pay?

http://www.cocoachina.com/ios/20141024/10026.html

请解释一下iOS应用沙盒机制。
C6C05390-AFD6-42D4-9491-3F82DE8C2EC1.png

产品经理们是如何越过 iOS 沙盒机制的?

VoiceOver是什么?请举例解释一下iOS中的辅助功能(Accessibility)。开发者如何使用这些功能?

VoiceOver是苹果“读屏”技术的名称,属于辅助功能的一部分。VoiceOver可以读出屏幕上的信息,以帮助盲人进行人机交互。
http://www.cocoachina.com/ios/20160509/16142.html
实践:http://blog.csdn.net/CHENYUFENG1991/article/details/49207669

iOS应用是如何实现后台多任务处理(Multitasking)的?
Game Center针对iOS游戏有哪些功能?
iBeacons是什么?
Cocoa/Cocoa Touch是什么?
请概括一下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 Touch包含什么?不包含什么?
为什么Cocoa Touch的类名称是以两个大写字母开头的?
Swift和Objective-C分别是什么?两者相比有何不同之处,又有何联系?
为什么Optional在Swift语言中非常重要?
请解释一下NSError。在Swift中,什么情况下能使用NSError ,什么情况下不能?
请说明如何使用Instancetype及其重要性。
在Swift中,什么时候该用let,什么时候该用var?
为什么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的屏幕分辨率分别是多少?
分辨率的计算单位是什么?
请解释一下Interface Builder的作用以及NIB文件的概念。
iOS UI的图像储存类型是什么?
请描述一下Storyboard和标准NIB文件的差别。
设备状态栏(Device Status Bar)是什么?高度如何?是否透明?在手机通话或者导航状态下,它是如何显示的?
导航栏(Navigation Bar)是什么?能否拿出你的iPhone,指出你下载的哪些应用运用了导航栏?
选项卡(Tab Bar)和工具栏(Toolbar)分别是什么?两者之间有何共同点和不同点?
表视图(Table View)是什么?集合视图(Collection View)又是什么?
什么时候用“弹出(Popover)”属性最为合适?
Split-view Controller是什么?
选取器视图(Picker View)适合存放哪类内容?
应该在什么情况下使用标签、文本域和文本视图?
分段控件(Segmented Control)的作用是什么?
模态视图(Modal View)是什么?
iOS通知属于什么类型?

关于设计

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

关于App Store

应用内购买(In-App Purchases)是怎么回事?IAP能够为用户带来哪些新体验?
你是否在App Store上发布过应用?能否概括一下过程?
iTunes Connect是什么?
Provisioning Profiles是指?
App ID是什么?
iOS的开发和发布签名证书有何异同?
如何使用TestFlight?通过Ad-hoc发布应用的话,该如何使用UUID?
应何时验证购买收据?
发布iAds(苹果平台广告)有哪些要求?

趣味问答

最近有没有开发什么好玩的东西?你最引以为豪的作品是什么?
谈一谈你常用的开发工具都有哪些优势?
你最敬佩的独立Mac或者iOS应用开发者是谁?
最喜欢什么项目?哪种类型的?
你觉得Xcode有哪些需要改进的地方?
iOS上你最喜欢哪些API?
是否有最中意的错误报告?
你最爱以哪种方式来检验一项新技术是否好用?
为什么词典被称作Dictionaries,而不是HashTable或HashMap?

上一篇下一篇

猜你喜欢

热点阅读