zoukankan      html  css  js  c++  java
  • 高级iOS面试题

    非标准答案

    2

    1: 类方法是可以直接通过类名直接调用,无需进行实例化对象。类方法是以+开头
    2. 实例方法,需要显示实例化对象,为对象分配堆栈空间,并通过对象实例调用实例方法
    3. RUNTIME 是在程序运行过程动态对实例对象进行操作,可以读取实例对象的属性,调用实例方法,也可以动态为实例对象添加属性。 即Java 中的反射。在对数据库操作常会用到该特性,实现ORMaping 操作

    3

    block 调用时, 变量的生命周期:
    1. 如果变量是在block 中声明和初始化,则该变量生命周期只是在block 内有效,一旦出了block 即自动释放
    2. 如果变量是在block 外部进行声明,则变量会在block 进行复制, 当外部变量生命周期结束时, 该变量依旧有效, block 中复制的变量会在block 生命周期结束进行释放。在使用时需要注意内存泄漏。

    block一种是内部变量,生命周期只在内部,一种是外部__的变量,可以对外部变量进行修改,一种是外部普通变量,对外部变量无法进行修改

    别人对面试题的理解http://www.jianshu.com/p/4afa037dd74b?plg_nld=1&plg_uin=1&plg_auth=1&plg_nld=1&plg_usr=1&plg_vkey=1&plg_dev=1

    1.array  dic的数据结构,数组去重策略  

    2.tableview展示的时候cpu和gpu怎么协作的

    3.gcd和nsthread区别

    4.数据库升级

     5.swift运行时和oc运行时一样吗

    6.view和layer区别 

    7.msgSend_forward 是干啥的 

    8.CoreAnimation 是如何开始和结束的


    9.谈谈对内存管理和优化的看法


    10.objc对象的selector如何找到对应IMP的


    11.NSTimer使用时有什么注意事项(两点)

  • 相关阅读:
    操作系统知识点_用户编程接口
    操作系统知识点_内存管理
    操作系统知识点_进程管理
    LintCode 二叉树的后序遍历
    LintCode 二叉树的最大深度
    LintCode 二叉树的中序遍历
    LintCode 二叉树的前序遍历
    LintCode 删除排序链表中的重复元素
    Lintcode 二分查找
    lintcode 空格替换
  • 原文地址:https://www.cnblogs.com/KiVen2015/p/5211908.html
Copyright © 2011-2022 走看看