Open ChenYilong opened 5 years ago
出题:微博@iOS程序犭袁 本期代号:超人
从未被讨论过的问题,不公布答案。顺延到下一期。只要讨论过,答案不正确也会提供答案。下面将讨论过的问题公布答案:
下列题目可能出现以下虚拟的程序员,非实指:
1 【问题】【iOS】猜想系统 isEqual 函数的实现原理,并给出代码实现。要求能通过以下用例。
isEqual
用例一:
NSMutableString *s1 = [NSMutableString stringWithString: @"大风, 哥"]; NSMutableString *s2 = [NSMutableString stringWithFormat: @"%@, %@", @"大风", @"哥"]; BOOL equal = [s1 isEqual: s2]; // 要求返回YES
用例二:
CYLCustomizeClass *customizeObject1 = ...; CYLCustomizeClass *customizeObject2 = ...; BOOL equal = [customizeObject1 isEqual: customizeObject2]; // 要求返回YES
【提示1】考虑父类、子类同时实现了该方法的情况。 【提示2】假设你的类结构包括以下元素,那么 cache 部分可以不用比较:
cache
NSString *_name; NSMutableDictionary *_cache; int _length; char *_data;
【 难度🌟🌟🌟🌟】【出题人 微博@iOS程序犭袁】 【提示】和006期,suuny出的题有联系,也跟 NSString 底层实现有关。
2 【iOS】请给出下列代码的输出结果,并给出分析。如果有多种可能性需求进行列举,不确定性也要说明。
override func viewDidLoad() { super.viewDidLoad() DispatchQueue.global().async { print("print 1, thread: \(Thread.current.isMainThread)"); } DispatchQueue.global().async { print("print 2, thread: \(Thread.current.isMainThread)"); } DispatchQueue.global().async { print("print 3, thread: \(Thread.current.isMainThread)"); } DispatchQueue.global().sync { print("print 4, thread: \(Thread.current.isMainThread)"); } }
【 难度🌟🌟🌟】【出题人 微博@iOS程序犭袁】 【提示】没看过源码,只看文档,基本答错,这是一道送命题。
3【问题】【iOS】参考代码注释内容:
int main(int argc, const char * argv[]) { NSArray *array = @[@"Hello", @"World"]; //在这里插入代码(一行最好) //在不创建新的数组的情况下将 array变成@[@"Goodbye", @"World"] NSLog(@"%@", array); return 0; }
【 难度🌟🌟🌟🌟】【出题人 孙源Sunny@dd】
4 【iOS】kengny 是一名产品经理,他平时有两大爱好:第一,到处在各类群里求买企业证书,第二,运营着一款小成本的视频 app,迫于成本压力,一般只会有两个人参演。他向大风哥提出需求,说希望能够在用户退到后台后,上传日志记录用户什么时候进入的后台,便于记录用户使用时长。并要求退到后台后依然能够下载小视频,这样用户上班点击下载按钮,回到家躺床上打开 APP 就能看了。并且要求把后台下载成功率定为大风哥的KPI。
如果你是大风哥,你将如何应对。必要时贴出示例代码。
【 难度🌟🌟🌟】【出题人 微博@iOS程序犭袁】
5【iOS】kengny 是一名产品经理,他们的 app 是一款类似美团的产品,最近他和一些店家进行了PY交易,要求用户到他们家店附近的时候,立即收到通知。 小地和大风哥,会上听到需求后,小地立即说:这个需求做不了。大风哥会上没说话,产品经理说,明天上线,怎么实现我不管,散会。
会后,大风哥悄悄说对小地说要做也可以,可以这样做:___。
请补充填空,要求给出详细理由,包括技术实现细节,如有必要贴出示例代码。
【 难度🌟】【出题人 微博@iOS程序犭袁】
6【iOS】大风哥负责企业内部员工 APP 的iOS开发工作,产品经理 kengny 老师通知说,老板要求,发布2.0,对员工数据进行更新,在 iOS 原有数据库基础上,增加一个字段,用于记录用户 “是否是兄弟”。该字段只有老板有操作权限,如果打开APP后,发现不是兄弟,就弹出离职申请页面。服务端得知填写完成后,会发送指令要求手机原地爆炸。如果不能爆炸的话,远程删除APP,或将手机初始化也可以。
如果你是大风哥你将如何应对。要求数据库操作贴出示例代码,数据库类型不限。
7【算法】请通过编程实现大数(亿位)的相加减乘除。(不限语言) 【 难度🌟🌟🌟】【出题人 消摇-金融-深圳iOSqp】 【提示】用人算的思路让电脑去算。 弱弱的问句第6题是用NSDecimalNumber去做计算吗"
M.W-不知名小作坊-iOS-北京:@颜魏-大世纪-深圳iOS 应该不是,用字符串和数组可以实现大数的加减 颜魏-大世纪-深圳iOS:弱弱的问句第6题是用NSDecimalNumber去做计算吗
8 【iOS】CoreData中几个核心概念及关系阐述下,第三方库 MagicRecord 的读写操作是在什么线程中执行的?【 难度🌟🌟🌟】【出题人 微博@iOS程序犭袁】
9 【iOS】在一个字典中含有,字符串,字典,数组。层层嵌套,可能十几层。现在想知道任意节点Value中是否含有某个字符串。【 难度🌟🌟】【出题人 BM-成都iOS】 【提示】与广度优先排序,深度优先 排序。
10 【iOS】多线程操作中,读写操作一定要在同一线程中执行吗?给出原因,并至少给出两种场景佐证你的观点,以及实现方法。【难度🌟🌟】【出题人 微博@iOS程序犭袁】
11 【iOS】一个app中可能会产生几个 Autorelease Pool , Autorelease Pool 中的临时对象,何时会被dealloc 。给出原因。【难度🌟🌟】【出题人 微博@iOS程序犭袁】
12 【iOS】For in 循环中频繁创建临时变量的场景下,如何使用 Autorelease Pool 优化, 着重讲下你放置pool的位置,以及这些临时变量的生命周期改变。并给出原因。【难度🌟🌟🌟】【出题人 微博@iOS程序犭袁】
Posted by 微博@iOS程序犭袁 原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0
----------
One more thing...
【非礼勿视】以下为彩蛋部分,建议28岁以上男性观看
iTeaTime(技术清谈)【008期】【代号:超人】
出题:微博@iOS程序犭袁 本期代号:超人
从未被讨论过的问题,不公布答案。顺延到下一期。只要讨论过,答案不正确也会提供答案。下面将讨论过的问题公布答案:
下列题目可能出现以下虚拟的程序员,非实指:
1 【问题】【iOS】猜想系统
isEqual
函数的实现原理,并给出代码实现。要求能通过以下用例。用例一:
用例二:
【提示1】考虑父类、子类同时实现了该方法的情况。 【提示2】假设你的类结构包括以下元素,那么
cache
部分可以不用比较:【 难度🌟🌟🌟🌟】【出题人 微博@iOS程序犭袁】 【提示】和006期,suuny出的题有联系,也跟 NSString 底层实现有关。
2 【iOS】请给出下列代码的输出结果,并给出分析。如果有多种可能性需求进行列举,不确定性也要说明。
【 难度🌟🌟🌟】【出题人 微博@iOS程序犭袁】 【提示】没看过源码,只看文档,基本答错,这是一道送命题。
3【问题】【iOS】参考代码注释内容:
【 难度🌟🌟🌟🌟】【出题人 孙源Sunny@dd】
4 【iOS】kengny 是一名产品经理,他平时有两大爱好:第一,到处在各类群里求买企业证书,第二,运营着一款小成本的视频 app,迫于成本压力,一般只会有两个人参演。他向大风哥提出需求,说希望能够在用户退到后台后,上传日志记录用户什么时候进入的后台,便于记录用户使用时长。并要求退到后台后依然能够下载小视频,这样用户上班点击下载按钮,回到家躺床上打开 APP 就能看了。并且要求把后台下载成功率定为大风哥的KPI。
如果你是大风哥,你将如何应对。必要时贴出示例代码。
【 难度🌟🌟🌟】【出题人 微博@iOS程序犭袁】
5【iOS】kengny 是一名产品经理,他们的 app 是一款类似美团的产品,最近他和一些店家进行了PY交易,要求用户到他们家店附近的时候,立即收到通知。 小地和大风哥,会上听到需求后,小地立即说:这个需求做不了。大风哥会上没说话,产品经理说,明天上线,怎么实现我不管,散会。
会后,大风哥悄悄说对小地说要做也可以,可以这样做:___。
请补充填空,要求给出详细理由,包括技术实现细节,如有必要贴出示例代码。
【 难度🌟】【出题人 微博@iOS程序犭袁】
6【iOS】大风哥负责企业内部员工 APP 的iOS开发工作,产品经理 kengny 老师通知说,老板要求,发布2.0,对员工数据进行更新,在 iOS 原有数据库基础上,增加一个字段,用于记录用户 “是否是兄弟”。该字段只有老板有操作权限,如果打开APP后,发现不是兄弟,就弹出离职申请页面。服务端得知填写完成后,会发送指令要求手机原地爆炸。如果不能爆炸的话,远程删除APP,或将手机初始化也可以。
如果你是大风哥你将如何应对。要求数据库操作贴出示例代码,数据库类型不限。
【 难度🌟🌟🌟】【出题人 微博@iOS程序犭袁】
7【算法】请通过编程实现大数(亿位)的相加减乘除。(不限语言) 【 难度🌟🌟🌟】【出题人 消摇-金融-深圳iOSqp】 【提示】用人算的思路让电脑去算。 弱弱的问句第6题是用NSDecimalNumber去做计算吗"
M.W-不知名小作坊-iOS-北京:@颜魏-大世纪-深圳iOS 应该不是,用字符串和数组可以实现大数的加减 颜魏-大世纪-深圳iOS:弱弱的问句第6题是用NSDecimalNumber去做计算吗
8 【iOS】CoreData中几个核心概念及关系阐述下,第三方库 MagicRecord 的读写操作是在什么线程中执行的?【 难度🌟🌟🌟】【出题人 微博@iOS程序犭袁】
9 【iOS】在一个字典中含有,字符串,字典,数组。层层嵌套,可能十几层。现在想知道任意节点Value中是否含有某个字符串。【 难度🌟🌟】【出题人 BM-成都iOS】 【提示】与广度优先排序,深度优先 排序。
10 【iOS】多线程操作中,读写操作一定要在同一线程中执行吗?给出原因,并至少给出两种场景佐证你的观点,以及实现方法。【难度🌟🌟】【出题人 微博@iOS程序犭袁】
11 【iOS】一个app中可能会产生几个 Autorelease Pool , Autorelease Pool 中的临时对象,何时会被dealloc 。给出原因。【难度🌟🌟】【出题人 微博@iOS程序犭袁】
12 【iOS】For in 循环中频繁创建临时变量的场景下,如何使用 Autorelease Pool 优化, 着重讲下你放置pool的位置,以及这些临时变量的生命周期改变。并给出原因。【难度🌟🌟🌟】【出题人 微博@iOS程序犭袁】
Posted by 微博@iOS程序犭袁
原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0
----------
One more thing...
【非礼勿视】以下为彩蛋部分,建议28岁以上男性观看
---------- ![image](https://ws3.sinaimg.cn/large/006tNc79ly1g311hw6id6j30u016e7wh.jpg) ![](https://ws4.sinaimg.cn/large/006tNc79ly1g331u0b06zj30u017r4qp.jpg) /*one more thing*/