ios面试题汇总
文章平均质量分 65
贱兔不二
多闻阙疑,慎言其余,则寡尤。多见阙殆,慎行其余,则寡悔。言寡尤,行寡悔,禄在其中矣!
展开
-
IOS 多线程原理
iPhone中的线程应用并不是无节制的,官方给出的资料显示iPhone OS下的主线程的堆栈大小是1M,第二个线程开始都是512KB。并且该值不能通过编译器开关或线程API函数来更改。只有主线程有直接修改UI的能力。一.线程概述一个运行着的程序就是一个进程或者叫做一个任务,一个进程至少包含一个线程,线程就是程序的执行流。 Mac和iOS中的程序启动,创建好一个进程的同时, 一个线程便开转载 2015-10-28 23:36:37 · 429 阅读 · 0 评论 -
SDWebImage内部实现过程
SDWebImage内部实现过程(新版本在各方法前加上了sd_前缀,以区分UIImageView+AFNetworking中的方法)1.入口 setImageWithURL:placeholderImage:options:会先把 placeholderImage 显示,然后 SDWebImageManager 根据 URL 开始处理图片。2.进入 SDWebImageManager-downlo转载 2016-02-24 11:12:24 · 1825 阅读 · 0 评论 -
关于TCP/IP,HTTP,Socket的那些事
SocketSocket是应⽤层与TCP/IP协议族通信的中间软件抽象层,它是一组接⼝。在设计模式中,Socket其实就是一个⻔面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对⽤户来说,⼀组简单的接⼝就是全部,让 Socket去组织数据,以符合指定的协议。先从服务器端说起1>服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accep转载 2016-02-17 16:34:51 · 2352 阅读 · 0 评论 -
UIViewController的生命周期
当一个视图控制器被创建,并在屏幕上显示的时候。代码的执行顺序:1、 alloc 创建对象,分配空间2、init (initWithNibName) 初始化对象,初始化数据3、loadView 从nib载入视图 ,通常这一步不需要去干涉。除非你没有使用xib文件创建视图4、viewDidLoad 载入完成,可以进行自定义数据以及动态创建其他控件5、viewWillAppear 视图将出现在屏幕转载 2015-11-21 10:49:28 · 422 阅读 · 0 评论 -
iOS面试题汇总
一 基础知识1. static的作用?1>static修饰的函数是一个内部函数,只能在本文件中调用,其他文件不能调用2>static修饰的全部变量是一个内部变量,只能在本文件中使用,其他文件不能使用3>static修饰的局部变量只会初始化一次,并且在程序退出时才会回收内存2. 堆和栈的区别?1> 堆空间的内存是动态分配的,一般存放对象,并且需要手动释放内存2> 栈原创 2015-10-15 23:58:52 · 891 阅读 · 0 评论 -
iOS开发:使用Block在两个界面之间传值
需求首先,创建两个视图控制器,在第一个视图控制器中创建一个UILabel和一个UIButton,其中UILabel是为了显示第二个视图控制器传过来的字符串,UIButton是为了push到第二个界面。第二个界面的只有一个UITextField,是为了输入文字,当输入文字,并且返回第一个界面的时候,当第二个视图将要消失的时候,就将第二个界面上TextFiled中的文字传给第一个界面,并且显示在UI转载 2015-11-16 21:09:39 · 592 阅读 · 0 评论 -
关于TableViewCell的重用机制
static NSString *CellTableIdentifier = @"CellTableIdentifier "; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellTableIdentifier]; if (cell == nil) { cell = [[[UI转载 2015-10-29 00:19:40 · 464 阅读 · 0 评论 -
IOS代理协议与委托
总结delegate和protocol关系拿来给大家分享一下:把自己不想干的一些事情(洗衣做饭)找个助手来帮助你做,而你要的这个助手得有一定的能力,不是任何一个人都可以的,所以你就得有个招聘要求。协议(protocol)就类似于你的招聘要求,你找到的助手就是代理(delegate)。 这样就有了我.delegate = 助手;好了这样以后再有洗衣做饭的活直接找助手做就可以了。协议不是类,以@pr转载 2015-10-28 23:27:10 · 423 阅读 · 0 评论 -
IOS如何选择图片加载方式:imageNamed和imageWithContentsOfFile的区别
一、imageNamedimageNamed的优点在于可以缓存已经加载的图片。苹果的文档中有如下说法:This method looks in the system caches for an image object with the specified name and returns that object if it exists. If a matching image object i转载 2015-11-12 17:04:43 · 506 阅读 · 0 评论 -
IOS单例模式(Singleton)
单例模式算是开发中比较常见的一种模式了。在iOS中,单例有两种实现方式(至少我目前只发现两种)。 根据线程安全的实现来区分,一种是使用@synchronized,另一种是使用GCD的dispatch_once函数。 手写单例在面试中有可能会遇到,以下2种写法2选11、@synchronizedstatic InstanceClass *instance;+ (InstanceClass *)原创 2015-11-11 23:08:34 · 564 阅读 · 0 评论 -
[单例、代理 & 通知]
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。1、单例-sharedXxx单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如转载 2015-11-11 23:26:15 · 416 阅读 · 0 评论 -
UIView和CALayer的那些事儿
万剑归宗,UIView和CALayer都是的祖宗都是NSObjet。 继承结构UIView的继承结构为: UIResponder : NSObject。 UIResponder是用来响应事件的,也就是UIView可以响应用户事件CALayer的继承结构为: NSObject 直接从 NSObject继承,因为缺少了UIResponder类,所以CALayer悲催的不能响应任何用户事件。UI转载 2016-02-24 18:16:44 · 904 阅读 · 0 评论