• iOS笔试题02


    1. Difference between shallow copy and deep copy?

    1> 浅拷贝:指针(地址)拷贝,不会产生新对象 

    2> 深拷贝:内容拷贝,会产生新对象

     

    2. What is advantage of categories? What is difference between implementing a category and inheritance? 

    类别主要有3个作⽤:
    (1)将类的实现分散到多个不同⽂件或多个不同框架中。
    (2)创建对私有⽅法的前向引⽤。
    (3)向对象添加⾮正式协议。

    1> 分类可以在不修改原来类模型的基础上拓充方法

    2> 分类只能扩充方法、不能扩充成员变量;继承可以扩充方法和成员变量,

    会产生新的类

     

    3. Difference between categories and extensions?


    1> 分类是有名称的,类扩展没有名称

    2> 分类只能扩充方法、不能扩充成员变量;类扩展可以扩充方法和成员变量

    3> 类扩展一般就写在.m文件中,用来扩充私有的方法和成员变量(属性)

    注意:继承和类扩展都可以扩充方法和成员变量,但是继承会产生新的类,但是类扩展不会产生新的类。

    4. Difference between protocol in objective c and interfaces in java?


    1> Java的接口中声明的方法必须都实现

    2> Oc的protocol中声明的方法并不一定要实现

    注意:protocol简单来说就是一系列方法列表,可以声明很多方法,声明方法可以被任何类实现,称为代理模式。

     

    5. What are mutable and immutable types in Objective C?


    1> mutable是可变类型,比如NSMutableArray,可以动态往里面添加元素

    2> immutable是不可变类型,比如NSArray,固定的存储空间,不能添加元素

     

    6. When we call objective c is runtime language what does it mean?


     

    1> 动态绑定:对象类型在运行时才真正确定 

     

    2> 多态性

     

    3> 消息机制

     

     

     

     

     

    7. What is push notification?


     

    1> 本地推送:程序内部弹出通知到用户设备

     

    2> 远程推送:由推送服务器推送通知到用户设备

     

     

     

    8. What is Polymorphism

     

    多态:父类指针指向子类对象

     

     

     

     

     

    9. What is responder chain?


     

    
 响应者链:

     

    l UIResponder有一个nextResponder属性,通过该属性可以组成一个响应者链,事件或消息在其路径上进行传递

     

    l 如果UIResponder没有处理传给它的事件,会将未处理的消息转发给自己的nextResponder

     

     

    10. Difference between frame and bounds?
 

    1> frame以父控件的左上角为坐标原点

    2> bounds以控件本身的左上角为坐标原点

     

    11. Difference between method and selector?


    selector是一个方法的名字,通过一个selector可以找到方法地址,进而调用一个方法 ;method是一个组合体,包含了名字和实现.

    12. Is there any garbage collection mechanism in Objective C.?


    1> OC 1.0没有垃圾回收

    2> OC 2.0有垃圾回收,只能用在Mac

    3> iOS中有ARC机制,是编译器特性,垃圾回收是运行时特性

     

    13. What is NSOperation queue?


    1> 用来存放NSOperation对象的队列,可以用来异步执行一些操作

    2> 一般可以用在网络请求等耗时操作

     

    14. What is lazy loading?


    延迟加载:比如控制器的view,在第一次用到view时才会调用loadView方法进行创建

    15. Can we use two tableview controllers on one viewcontroller?

    一个控制器内部添加2个表格控制器是没有问题的,加判断条件判断是哪个tableview。

     

    16. Can we use one tableview with two different datasources? How you will achieve this?



    从对象属性上分析,tableView只有一个dataSource属性。当然,真要使用2个不同的数据源,也是可以的。

     

     

     

  • 相关阅读:
    es6的解构赋值
    防抖
    resources saver 实现资源批量下载
    flutter了解
    export, export default 和 import的使用
    5,vue过滤和高阶函数
    4,v-for循环
    3,v-if的使用
    2,v-on绑定事件和修饰符
    怎样统一管理vue项目中的大量api和异步操作
  • 原文地址:https://www.cnblogs.com/linxiu-0925/p/5030900.html
Copyright © 2020-2023  润新知