美文网首页iOS
iOS面试准备

iOS面试准备

作者: 玉思盈蝶 | 来源:发表于2018-01-25 14:06 被阅读128次

1.Cocoa框架:

Cocoa是OS X和 iOS操作系统的程序的运行环境。

是什么因素使一个程序成为Cocoa程序呢?不是编程语言,因为在Cocoa开发中你可以使用各种语言;也不是开发工具,你可以在命令行上就可以创建Cocoa程序。Cocoa程序可以这么说,它是由一些对象组成,而这些对象的类最后都是继承于它们的根类 :NSObject。而且它们都是基于Objective-C运行环境的。

iOS中,Cocoa众多框架中最重要最基本的两个框架是:Foundation 和 UIKit。

Foundation 和界面无关,也可以说和界面无关的类基本是Foundation框架的,和界面相关的是UIKit框架。

这两个框架在系统中处于的位置如图:

Foundation框架:

UIKit框架:

2.React框架:

React是脸书为Web端开发的一个开源框架。

React Native是脸书为移动端跨平台开发的一个开源框架。

3.主要设计模式:

https://www.cnblogs.com/wangbinios/p/7882082.html

4.网络开发相关技术,如 Socket,HTTP,REST:

WEB使用HTTP作传输层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发送到网络上。Socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。

iOS可以利用第三方框架CocoaAsyncSocket实现Scocket

iOS可以利用第三方框架SocketRocket实现webSocket

REST式的服务最重要的三个特征就是**无状态性**(statelessness)、**统一资源定位**(uniform resource identification)和**可缓存性**(cacheability)。

REST式服务总是无状态的。每次API调用都被视作新的请求,服务器并不会记录客户端上下文。客户端需要维护服务器的状态,包括但不限于缓存服务器响应(response)和登录访问令牌(login access token)。

REST式服务的资源定位是通过URL实现的。REST不使用资源ID作为参数,而是将它作为URL的一部分。例如,http://example.com/resource?id=1234REST服务中就变成了http://example.com/resources/1234。

REST式服务使用这种方式进行资源定位,而且也不维护客户端状态,这就使客户端可以根据URL缓存响应,就像浏览器缓存网页一样。

REST式服务的响应通常以一种统一的、双方一致同意的格式返回给客户端,这样可以更好地对客户端接口和服务器接口进行解耦。客户端的iOS应用使用双方一致同意的数据交换格式与RESTful服务器进行通信。到目前为止,最常用的格式是XML和JSON。

5.数据存储相关技术:

XML属性列表(plist)归档

Preference(偏好设置)

NSKeyedArchiver归档(NSCoding) // 所谓归档,是一个过程,即用某种格式来保存一个或者多个对象,以便以后还原这些对象。

特点:

1> 可以存储自定义模型对象,NSKeyedArchiver归档相对较plist存储而言,它可以直接存储自定义模型对象,而plist文件需要将模型转为字典才可以存储自定义对象模型;

2> 归档不能存储大批量数据(相比较Sqlite而言),存储数据到文件是将所有的数据一下子存储到文件中,从文件中读取数据也是一下子读取所有的数据;

缺点:

1> 假如你的文件中有100个对象了,然后你想在利用归档添加一个对象,你需要先把所有的数据解档出来,然后再加入你想添加的那个对象,同理,你想删除一个文件中的一个对象也是,需要解档出所有的对象,然后将其删除。性能低这样处理

2> 基本使用:需要归档的模型类必须要遵守NSCoding协议,然后模型实现类中必须实现两个方法:1>encodeWithCoder -> 归档;2> initWithCoder: - > 解档

SQLite3

Core Data

6.面向接口开发模式:

objc是一门面向对象的语言,面向对象也给我们平时带来了很多的方便。然而很多情况下面向对象也有自己的局限性,滥用继承多态可能会埋下很多坑。

在实际采用多态的时候会有下面四种情况:

父类有部分public的方法是不需要,也不允许子类覆重

父类有一些特别的方法是必须要子类去覆重的,在父类的方法其实是个空方法

父类有一些方法是可选覆重的,一旦覆重,则以子类为准

父类有一些方法即便被覆重,父类原方法还是要执行的

父类有一些方法即便被覆重,父类原方法还是要执行的

因为我们规定了父类方法不可以被覆盖重载,只能通过接口实现的方式来写.

参考链接: https://casatwy.com/tiao-chu-mian-xiang-dui-xiang-si-xiang-er-duo-tai.html

7.Git 版本控制工具和缺陷跟踪系统:

git add .

git commit -m ‘initial commit’

git push

git pull

题外话:一般在开发中,多人合作开发的时候,版本控制非常重要,所以一定要有稳定的主分支Master,开发功能的分支developer,预发布的分支release这三个重要分支。每次有新功能和需求的时候每个开发人员就从developer分支分别拉取项目开发,最后合并入developer,功能完成后就并入release,修改bug时在release分支操作,修复完成后分别并入Master和developer分支,最后从Master分支拉取最终的代码打包上传APP Store。

项目管理和缺陷跟踪工具——Redmine

相关文章

  • iOS面试准备之思维导图

    iOS面试准备之思维导图

  • iOS面试准备

    面试准备 runloop理解runloop其实是一个函数,内部是do-while循环。它接受两种不同类型的源来处理...

  • iOS面试准备

     具备扎实的C/C++、Objective-C编程基础,熟练掌握Swift,对OOD/OOP有深刻的理解,并具有...

  • iOS面试准备

    1.Cocoa框架: Cocoa是OS X和iOS操作系统的程序的运行环境。 是什么因素使一个程序成为Cocoa程...

  • iOS面试准备

    堆与栈的区别 http://my.oschina.net/jilin/blog/402054 atomic与non...

  • iOS面试准备

    1、YYModel在Swift中的使用与OC中有没有什么不同?(此问题为小众问题) 不同:1)、无法将 Model...

  • 阿里腾讯头条美团等iOS面试总结

    阿里iOS面试总结 头条iOS面试总结 腾讯iOS面试总结 百度iOS面试总结 美团iOS面试总结

  • iOS 面试准备题

    现在又想再写一波面试题,作为自己工作的总结. static NSString * const str = @"s...

  • iOS面试前准备

    iOS是一个庞大的平台,涵盖2711个类,644个协议和125个框架。在准备iOS采访时,绝对检查所有API文档的...

  • iOS面试准备资料

    OC篇: 阿里、字节 一套高效的iOS面试题解答(完结):https://www.jianshu.com/p/c1...

网友评论

    本文标题:iOS面试准备

    本文链接:https://www.haomeiwen.com/subject/nsjvaxtx.html