zoukankan      html  css  js  c++  java
  • OC常见面试题二

    • Difference between shallow copy and deep copy?
    1. 浅拷贝:指针(地址)拷贝,不会产生新对象 
    2. 深拷贝:内容拷贝,会产生新对象
    • What is advantage of categories? What is difference between implementing a category and inheritance? 
    1. 分类可以在不修改原来类模型的基础上拓充方法
    2. 分类只能扩充方法、不能扩充成员变量;继承可以扩充方法和成员变量
    3. 继承会产生新的类
    • Difference between categories and extensions?
    1. 分类是有名称的,类扩展没有名称
    2. 分类只能扩充方法、不能扩充成员变量;类扩展可以扩充方法和成员变量
    3. 类扩展一般就写在.m文件中,用来扩充私有的方法和成员变量(属性)
    • Difference between protocol in objective c and interfaces in java?
    1. Java的接口中声明的方法必须都实现
    2. Oc的protocol中声明的方法并不一定要实现
    • What are KVO and KVC?
    1. KVC是键值编码,可以通过一个字符串的key(属性名)修改对象的属性值
    2. KVO是键值监听,可以监听一个对象属性值的改变
    • What is purpose of delegates?
    1. 两个对象之间传递数据和消息
    2. 解耦,拆分业务逻辑
    • What are mutable and immutable types in Objective C?
    1. mutable是可变类型,比如NSMutableArray,可以动态往里面添加元素
    2. immutable是不可变类型,比如NSArray,固定的存储空间,不能添加元素
    • When we call objective c is runtime language what does it mean?
    1. 动态绑定:对象类型在运行时才真正确定 
    2. 多态性
    3. 消息机制
    • what is difference between NSNotification and protocol?
    1. 通过NSNotification可以给多个对象传递数据和消息
    2. 通过protocol(代理模式)只能给一个对象传递数据和消息 
    • What is push notification?
    1. 本地推送:程序内部弹出通知到用户设备
    2. 远程推送:由推送服务器推送通知到用户设备
    • What is Polymorphism?
    1. 多态:父类指针指向子类对象
    • What is Singleton?
    1. 单粒:保证程序运行过程中,永远只有一个对象实例
    2. 目的是:全局共享一份资源、节省不必要的内存开销
    • What is responder chain?

     响应者链:

    • UIResponder有一个nextResponder属性,通过该属性可以组成一个响应者链,事件或消息在其路径上进行传递
    • 如果UIResponder没有处理传给它的事件,会将未处理的消息转发给自己的nextResponder

    • Difference between frame and bounds?
    1. frame以父控件的左上角为坐标原点
    2. bounds以控件本身的左上角为坐标原点
    • Difference between method and selector?
    1. 通过一个selector可以找到方法地址,进而调用一个方法
    • Is there any garbage collection mechanism in Objective C.?
    1. OC 1.0没有垃圾回收
    2. OC 2.0有垃圾回收,只能用在Mac上
    3. iOS中有ARC机制,是编译器特性,垃圾回收是运行时特性
    • What is NSOperation queue?
    1. 用来存放NSOperation对象的队列,可以用来异步执行一些操作
    2. 一般可以用在网络请求等耗时操作
    • What is lazy loading?
    1. 延迟加载:比如控制器的view,在第一次用到view时才会调用loadView方法进行创建
    • Can we use two tableview controllers on one viewcontroller?
    1. 从技术角度上分析,一个控制器内部添加2个表格控制器是没有问题的
    • Can we use one tableview with two different datasources? How you will achieve this?
    1. 从对象属性上分析,tableView只有一个dataSource属性。当然,真要使用2个不同的数据源,还是有其他办法解决的
  • 相关阅读:
    用汇编的眼光看c++(之模板函数) 四
    从B树、B+树、B*树谈到R 树 四
    how to locate dll in native c++ world / dotnet world?
    GAC和sidebyside
    ARM VS Intel
    关于dotnet下的encoding
    synchronization objects for interprocess synchronization and multithreadiing
    [remote debug]WinDBG 技巧: 如何用WinDBG远程调试程序
    [tip]transparent bmp
    Review: functor / function object
  • 原文地址:https://www.cnblogs.com/studyrecord/p/4824208.html
Copyright © 2011-2022 走看看