金三银四,2018最新iOS面试题,由它可以搞定面试官?

2018-03-13 14:45 by iOS是泽镜啊, 阅读, 评论, 收藏, 编辑

序言

 

这些资料,你一定会用到!我相信很多人都在说,iOS行业不好了,iOS现在行情越来越难了,失业的人比找工作的人还要多。失业即相当于转行,跳槽即相当于降低自己的身价。那么做iOS开发的你,你是否在时刻准备着跳槽或者转行。

 

在分享这篇面试文章的小编先分享自己建的一个“iOS程序员开发者的群”“638302184”每天都会有开发者分享案例一起探讨工作中的问题,群里还会分享阿里面试题及各大BAT面试题,你不会的有人解答。我不会的请伸手帮助一下。

 

先提供一些面试公司核心岗位必备面试题一波,请注意!

 

1、客户端在数据安全方面会使用那些常用加密算法?

2、如何灵活结合不同加密算法实现数据安全交互?

3、数字签名原理是什么?

4、https协议原理是什么?

 

OC项目里怎么混编入Swift文件?

 

不管是混编还是用RN、Weex之类的混合开发模式都建议从小模块与主业务不太相关或耦合性,改动性影响度不大的地方入手。

 

这里我就说OC项目里混编Swift的做法吧,毕竟这个要实用一点Swift混编OC的暂不考虑,如果用了Swift写项目了,应该坚持全用Swift不应该来混编OC,当然一些三方倒是可以的。

 

[if !supportLists]一、 [endif]当我们创建一个Swift文件时,会自动有个创建桥接文件的提示,创建就行。

 

二、OC怎么访问Swift类。

 

Swift类放在一个 : 工程名-Swift.h的文件里,这个文件是自动生成的,不用手动创建,想在哪里访问Swift类就在哪里导入即可,当然暴力的做法是将这个文件导入到OC的pch文件里。

 

三、Swift怎么访问OC类。

 

把Swift想要访问到的类放在第一步创建Swfit自动生成的桥接文件里就行。

以上只是基于之前混编时的经验来说,更加详细的请参阅苹果官方文档说明

https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html

 

1.谈谈 tableview 的重用机制。

 

为什么要“重用”?iPhone 重用机制是为了实现大量数据显示而采用的一种节省内存的机制。如果一个 tableview 有几百个 cell,这个内存消耗无疑是很恐怖的。再加上 cell 中还有 image 之类的资源。很容易出现 memory warning 甚至 crash !!!

 

重用代码

 

static NSString *CellTableIdentifier = @”cell “;UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: CellTableIdentifier];if (cell == nil) {cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellTableIdentifier];}

 

关键函数

  • (__kindof UITableViewCell *)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath;

文档说明如下:

 

Returns a reusable table-view cell object for the specified reuse identifier and adds it to the table.

它返回的是一个受 identifier 管理定位的可重用的 tableViewCell。

 

那么它是如何重用的?

 

举例:假设系统启动的时候,tableView 可以显示 7 个 tableViewCell ,并且都有 tag 值,是 0 – 6。咱们把 tableView 向上滑动,那么 tag 为 0 的 Cell 将会移动到 tag 为 6 的 Cell 下面。重新设置属性。为 1 的 Cell 会移动到 0 的 Cell 下面。。。 这就是 “可重用”。

 

但是有的同学会问了:经常会有 cell 重叠的情况发生, 这个很容易理解,因为 Cell 滑出界面并被放入重用队列时, cell 中的内容不会消失,可以通过下面代码解决。

 

  • (void)layoutSubviews {[super layoutSubviews];/这里面对属性的值进行更改/ }

欢迎大家加入小编的iOS交流群638302184,群里会提供iOS学习资料以及各种iOS面试资料,书籍欢迎大家入驻!

版权声明:本文为ioszejingg原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/ioszejingg/p/8556763.html