超实用的BAT应聘技巧,但90%的人都不知道……

移动互联网行业一直是社会发展的一个趋势,且这几年快速十分迅速,诸如BAT这些大型的互联网企业的用户也是主要以移动端用户为主。

而iOS开发本身就属于移动开发,所以它依旧是目前热门的行业,今天小编就跟大家聊聊iOS面试必考的几大知识点。


超实用的BAT应聘技巧,但90%的人都不知道……_第1张图片

一、Objective-C

1、你是否接触过OC中的反射机制?简单聊一下概念和使用

答:

  • Class反射

通过类名的字符串形式实例化对象

Class class NSClassFromString@(@”student”);

Student *stu = [[class alloc ]init];
  • 将类名变为字符串
Class class =[Student class];

NSString*className = NSStringFromClass(class);
  • SEL的反射

通过方法的字符串形式实例化方法

SEL selector = NSSelectorFromClass(@”setName”);

[stu perform Selector:selector withObject:@”Mike”];
  • 将方法变成字符串
NSString FomrSelector(@selector*(setName:))

2、编写一个函数,实现递归删除指定路径下的所有文件


超实用的BAT应聘技巧,但90%的人都不知道……_第2张图片

二、Runloop&Runtime

1、Runloop和线程有什么关系?
答:主线程的run loop默认是启动的。
iOS的应用程序里面,程序启动后会有一个如下的main()函数。

(arc,*argv[]){

@autoreleasepool{

Return UIApplicationMain(argc,argv,,NSStringFromClass([AppDelegate class]));

}
}

重点是UIApplicationMain()函数,这个方法会为mainthread设置一个NSRunLoop对象。

这就解释了:为什么我们的应用可以在无人操作的时候休息,需要让它干活的时候又能立马响应。

对其它线程来说,runloop默认是没有启动的,runloop只在你要和线程有交互时才需要。

在任何一个Cocoa程序的线程中,都可以通过以下代码来获取到当前贤臣的runloop。

NSRunLoop*runloop = [NSRunLoop currentRunLoop];

2、Obiective-C如何对已有的方法,添加自己的功能代码以实现类似记录日志这样的功能?


超实用的BAT应聘技巧,但90%的人都不知道……_第3张图片

三、swift

举例说明Swift里边有哪些是Objective-C中没有的?
答:Swift引入了在Objective-C中没有的一些高级数据类型,例如tuples(元祖),可以使你创建和传递一组数值。

Swift还引入了可选项类型(Optionals),用于处理变量值不存在的情况。可选项的意思有两种,一种变量是存在的,例如等于X,而是变量值根本不存在。Optionals类似于Objective-C中指向nil的指针、但是适用于所有的数据类型,而非仅仅局限于类,Optionals相比于Objective-C中nil指针更加安全简明,并且也是Swift诸多最大功能的核心。

四、KVO-KVC

1、KVC的底层是如何实现的?


超实用的BAT应聘技巧,但90%的人都不知道……_第4张图片

2、KVO的底层是如何实现的?


超实用的BAT应聘技巧,但90%的人都不知道……_第5张图片

结语

有人说iOS行情越来越难,其实这种说话并不准确,在移动网络愈加普及的今天,iOS程序员失业的情况是不会出现的。目前市场上iOS初级开发者人满为患,但中级高级的开发者依旧非常稀缺,在这个时候,你迫切需要的是提高自己的技术。

如何学习iOS?swift和OC到底该用谁?怎么样确定未来发展方向?中、外企业间有何文化差异?

作为iOS程序员,我们该如何在时代的浪潮中把握机遇,不被淘汰?

那么小编这里就向大家推荐一个iOS技术学习交流群,大家可以通过扫描或长按识别下方二维码加入学习。

超实用的BAT应聘技巧,但90%的人都不知道……_第6张图片

不定期有逆向、iOS架构、反编译等免费知识分享课,更有行业大咖讲述各大公司面试技巧,如果你对程序员这份工作满怀热爱,如果你乐意走在技术的最前沿,不妨一同前行,未来属于掌握技术的人们。

你可能感兴趣的:(超实用的BAT应聘技巧,但90%的人都不知道……)