美文网首页
iOS校招阿里一面失败总结

iOS校招阿里一面失败总结

作者: 咸鱼有只喵 | 来源:发表于2018-03-31 14:19 被阅读87次

    自我介绍
    HTTP了解多少
    http://www.blogjava.net/zjusuyong/articles/304788.html
    你是怎么使用alamofire的(需要封装)
    平时使用什么包管理工具,项目版本控制工具呢
    页面的生命周期
    Init->loadView->viewDidload->viewWillappear->viewDidAppear->viewWillDisAppear->viewDidDisappear->deinit
    应用的生命周期
    知道多少网络状态码
    ARC MRC内存管理

    MRC: 手动管理内存(retain, release, autorelease,不多说) 持有对象,retain +1 ,引用计数加1, 释放对象:release -1, 引用计数减1,当引用计数为0时,会自动释放内存. autorelease对象内存的管理放到autoreleasepool中, 当pool drain时,回收内存. (这是基于 objective-c的运行时特性和垃圾回收机制)
    ARC: 手动管理内存, 这是xcode4.x版本的特性,(4.1及以前没有,我从4.6开始的), 原理是:在编译代码的时候为你自动在合适的位置插入release 和 autorelease, (运行时处理垃圾回收就如何MRC一样).
    总结: ARC机制拥有和MRC一样的效率, ARC通过在部分优化和在最合适的地方完成引用计数的维护,所以支持使用ARC.
    https://www.jianshu.com/p/48665652e4e4

    循环引用问题怎么解决

    除了weak还了解那些关键字?
    unowaned和weak的区别
    //方案1 weak var weakSelf = self
    testClosure = {(myNum)->Void in weakSelf?.classNum = myNum; }
    //方案2
    处理循环
    //[weak self] 表示 self为可选型 可以为nil 所以在使用的时候必须解包
    testClosure = {weak self->Void in self?.classNum = myNum; }
    //方案3 //
    [unowned self]由于在使用前要保证一定有这个对象 所以不必解包
    testClosure = {unowned self->Void in self.classNum = myNum; }

    闭包的了解:
    自包含的函数代码块;

    可选类型的了解
    开发中用到了什么数据库,什么应用场景下的,具体是怎么使用sqlite的的

    开发的时候什么时候会用到catch
    catch能不能检测nil值

    tableview cell重用怎么去做
    说一下发布应用的流程

    cocopods的实现
    CocoaPods工作原理:
    CocoaPods的工作主要是通过ProjectName.xcworkspace来组织的,在打开ProjectName.xcworkspace文件后,发现Xcode会多出一个Pods工程。

    1. 库文件引入及配置:库文件的引入主要由Pods工程中的Pods-ProjectName-frameworks.sh脚本负责,在每次编译的时候,该脚本会帮你把预引入的所有三方库文件打包的成ProjectName.a静态库文件,放在我们原Xcode工程中Framework文件夹下,供工程使用。如果Podfile使用了use_frameworks!,这是生成的是.framework的动态库文件。引入方式也略有不同。
    2. Resource文件:Resource资源文件主要由Pods工程中的Pods-ProjectName-resources.sh脚本负责,在每次编译的时候,该脚本会帮你将所有三方库的Resource文件copy到目标目录中。
    3. 依赖参数设置:在Pods工程中的的每个库文件都有一个相应的SDKName.xcconfig,在编译时,CocoaPods就是通过这些文件来设置所有的依赖参数的,编译后,在主工程的Pods文件夹下会生成两个配置文件,Pods-ProjectName.debug.xcconfig、Pods-ProjectName.release.xcconfig。

    convenient init怎么使用

    1. http://swifter.tips/init-keywords/

    总结:
    阿里的一面,也就是简历面,因为看我时Swift方向的所以问的都是Swift问题;后续经过了几个公司都是问的OC,所以深深体会到自己Swfit不精、OC又不会,接下来一段时间要好好准备。

    相关文章

      网友评论

          本文标题:iOS校招阿里一面失败总结

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