内存管理、父子控制器面试题

1.建立父子关系控制器有什么用

回答:1>监听屏幕选中

2>如果想拿到你当前的很小的一个控制器所在的导航控制器必须要跟外面比较大的控制器建立父子关系,才能一层一层往上拿导航控制器

2.第三方API是怎么用的?

回答:0>大公司的开放API

1>github上面别人发布的框架

2>第三方API在官方文档都有说明,按照官方文档一步一步做

3>参考官方提供的示例程序

4>先自己创建一个工程试试,等熟悉了,在使用到项目中

3.列举现在熟悉iOS开发库和第三方开发库?

回答:友盟(包括第三方登录和分享),高德地图,百度地图,AFN,SDWebImage,MBProgressHUB、MJExtension等等

4.怎么保证多人开发进行内存泄露的检查

回答:1>使用Analyze进行代码的静态分析

2>为避免不需要的麻烦,多人开发时尽量使用ARC

5.非自动内存管理情况下怎么做单例模式

回答:创建单例设计模式的基本步骤

1>声明一个单件对象的静态实例,并初始化为nil

2>创建一个类的类工厂方法,当且仅当这个类的实例为nil时生成一个该类的实例

2>实现NScopying挟制,覆盖allocWithZone:方法,确保用户在直接分配对象时,不会产生另一个对象

3>覆盖release、autorelease、retain、retainCount方法,以此确保单例的状态。

4>在多线程的环境中,注意使用@synchronized关键字或GCD,确保静态实例被正确的创建和初始化

6.对于类方法(静态方法)默认是autorelease的,所有类方法都会这样吗?

回答:1>系统自带的绝大数类方法返回的对象,都是经过autorelease的

7.block在ARC中和MRC中的用法有什么区别,需要注意什么

回答:1>对于没有引用外部变量的Block,无论在ARC还是非ARC下,类型都是

__NSGlobalBlock__,这种类型

2>不管是ARC和MRC,block都应该用copy操作来持有

3>应该注意避免循环引用

@1>ARC:__weak/ __unscafe_unretained

@2>MRC:__block

8.什么情况下会引起内存泄露和内存溢出?

回答:内存泄露:该释放的没有释放。当程序在申请内存后,无法释放已申请的内存空间(例如一个对象或者变量使用完成后没有释放,这个对象一直占用着内存),一次内存泄露危险可以胡烈,但内存泄露堆积后果很严重,无论多少内存,迟早被占光。

内存泄露会最终导致内存溢出

内存溢出:内存满了,不够用。

当程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;

比如申请了一个int , 但给它存了long 才能存下的数,那就是内存溢出

9.[NSArray arrayWithObject:<id>] 这个方法添加对象后,需要对这个数组做释放操作吗?

回答:不需要,这个对象被释放到自动缓存池当中

10.JSON数据如何解析,和解析数据的时候有内存泄露吗?有的话如何理解

回答:1>JSON解析的方案

@1>SBJson

@2>JSONkit

@3>NSJSONSerialization

11.自动释放池底层怎么实现?

回答:自动释放池以栈的形式实现:当你创建一个新的自动释放池时,它将被添加到栈顶。当一个对象收到发送autorelease消息时,它被添加到当前线程的处于栈顶的自动释放吃中,当自动释放吃被回收时,他们从栈中被删除,并且给池子里面所有的对象都会做一次release操作

iOS面试题05-父子控制器、内存管理的更多相关文章

  1. 【转】iOS夯实:ARC时代的内存管理

    iOS夯实:ARC时代的内存管理 什么是ARC Automatic Reference Counting (ARC) is a compiler feature that provides autom ...

  2. Objective-C 高级编程:iOS与OS X多线程和内存管理

    <Objective-C 高级编程:iOS与OS X多线程和内存管理> 基本信息 原书名: Pro Multithreading and Memory Management for iOS ...

  3. iOS夯实:ARC时代的内存管理

    iOS夯实:ARC时代的内存管理 文章转自 ARC时代的内存管理 什么是ARC Automatic Reference Counting (ARC) is a compiler feature tha ...

  4. iOS开发ARC机制下的内存管理技术要点

    转载一篇: iOS开发ARC内存管理技术要点.ARC内存管理原则总结.iOS ARC内存管理总结 ARC内存管理机制 (一)ARC的判断准则: 只要没有任何一个强指针指向该对象,该对象就会被释放. ( ...

  5. 【iOS开发-33】学习手动内存管理临时抛弃ARC以及retain/assign知识——iOSproject师面试必考内容

    我们为什么须要内存管理?当使用内存达到40M和45M时候会发出警告,假设不处理,占用内存达到120M时直接强制关闭程序. 所以出现闪退除了是程序出现逻辑错误,还有可能是内存使用过大. (1)创建一个对 ...

  6. 《Objective-C高级编程:iOS与OS X多线程和内存管理》读后感

    拿到这本书的第一感觉是非常薄,可是内容就如同序里面所说,这不是一本面向刚開始学习的人的书,比較有深度,对C/C++全然不熟悉的话非常多东西会看不明确. 尽管此书在技术点上仅仅谈到了ARC.Blocks ...

  7. iOS学习08之C语言内存管理

    本次主要学习和理解C语言中的内存管理 1.存储区划分 按照地址从高到低的顺序:栈区,堆区,静态区,常量区,代码区 1> 栈区:局部变量的存储区域 局部变量基本都在函数.循环.分支中定义 栈区的内 ...

  8. iOS开发系列-Foundation与CoreFoundation内存管理

    概述 对于初学者来说,可能仅只能将ARC用在objective-c对象上(也即继承自NSObject的对象),但是如果涉及到较为底层的东西,比如Core Foundation中的malloc()或者f ...

  9. iOS开发小技巧--父子控制器练习中get到的技能,控制核心动画的范围

    一.未经过处理的动画是这样的,自定义的导航按钮也一起跟着转起来了. 二.自己想要的效果 三.实现这种效果的思想:核心动画要添加到view的layer上面,刚开始的情况是讲核心动画添加到了整个大view ...

随机推荐

  1. Android 天天爱消除辅助

    简介 <天天爱消除>是一款移植于手游的消除类益智游戏,该游戏只有通过手机登录QQ跟微信才能进行,这样一来这款游戏必然会大红大紫. 功能 开发Android自动化触屏事件,录制操作脚本,实现 ...

  2. 强烈推荐visual c++ 2012入门经典适合初学者入门

    强烈推荐visual c++ 2012入门经典适合初学者入门 此书循序渐进,用其独特.易于理解的教程风格来介绍各个主题,无论是编程新手,还是经验丰富的编程人员,都很容易理解. 此书的目录基本覆盖了Wi ...

  3. Cocos2D-x权威指南:核心类成员CCNode

    节点类(CCNode)是Cocos2D-x中的主要类,继承自CCObject.继承关系如图3-2所看到的. 不论什么须要画在屏幕上的对象都是节点类. 最经常使用的节点类包含场景类(CCScene).布 ...

  4. 新浪微博布局学习——妙用TabHost

    前言 为了更好的开发Android应用程序,除了熟练掌握基本的UI组件和API外,还需要掌握一些技巧,而这些技巧可以通过阅读一些代码来提高,本系列将与大家分享一些新浪微博布局方面的收获,欢迎交流! 声 ...

  5. 662 - Fast Food

    描述:状态方程p[i][j]=dp[i-1][k]+dist(k+1,j),由于没搞懂距离dist是怎么计算的,以为是num[j]-num[k+1],结果wa了一次,在状态转移的时候,采用一个数组sc ...

  6. .NET读取Project 2007 MPP项目文件

    Project文件读取: 方法1:Microsoft.Project.OLEDB.11.0 string strConn = "Provider=Microsoft.Project.OLED ...

  7. 浅谈Hash函数

    什么是hash函数: hash函数也可以翻译成“散列”函数,一般就使用音译“哈希”函数,简单的说哈希函数是对任意长度的输入进行的压缩映射,所谓的压缩映射顾名思义,输出通常来说要比输入短,并且得到的输出 ...

  8. BZOJ 2594: [Wc2006]水管局长数据加强版( LCT )

    离线然后就是维护加边的动态MST, Link cut tree秒掉..不过我写+调了好久...时间复杂度O(NlogN + MlogM) ------------------------------- ...

  9. php中的require-once

    require_once语句和require语句完全相同,唯一区别是 PHP 会检查该文件是否已经被包含过,如果是则不会再次包含. 参见include_once的文档来理解_once的含义,并理解与没 ...

  10. 少部分手机浏览器对于COOKIE支持不够导致服务端无法读取session的解决方案

    相信大家都遇到过这样的问题,有手机浏览器的问题导致服务端SESSION读取不正常,目前在项目中的解决方法是采取H5手机本地存储唯一KEY解决的 代码片段 //定义json格式字符串 var userD ...