IOS面试
绿叶清风
这个作者很懒,什么都没留下…
展开
-
人事面试总结
1、请你自我介绍一下你自己?回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有。其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。企业很重视一个人的礼貌,求职者要尊重考官,原创 2014-11-26 09:36:07 · 1246 阅读 · 0 评论 -
ios 学习资料
中文网站系列 objcio.cncocoachina.comcode4app.com泰然网 博客系列唐巧地球人都知道哈。http://blog.devtang.com/巧哥新出书了,速度入手吧。 虾神地球人都知道系列二。http://blog.txx.im/?from=inf&wvr=5&loc=infblog(话说你们晓得虾神年纪多大么?反原创 2015-06-05 13:01:15 · 3490 阅读 · 0 评论 -
ios如何让自己的应用程序支持系统自带的分享
1,首先在info.plist文件中进入如下设置 2,在AppDelegate实现hadleOpenURL方法,有文件到来,就会调用这个方法,然后根据url读取文件- (BOOL) application:(UIApplication *)application handleOpenURL:(NSURL *)url { NSData *jsonDataImported = [原创 2015-09-01 14:29:48 · 1747 阅读 · 0 评论 -
object-c 不定参数的遍历和原理
object-c接收任意类型的参数:/** * 接收String类型的多个参数 * @param firsParam 第一个参数 */-(void)TestString:(NSString*)firsParam, ... { va_list list; va_start(list, firsParam); NSString* param; NSLog原创 2015-08-07 11:49:16 · 2246 阅读 · 0 评论 -
iOS 一个页面支持一个方向上横屏,其他页面全部竖屏
1,项目中开启横竖屏 2,自定义一个 UINavigationController ,并实现以上几个方法- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{ UIViewController *vc =原创 2015-09-04 20:39:55 · 2724 阅读 · 0 评论 -
iOS面试题总结与感想
http://www.hmttommy.com/2015/03/21/iOS面试题总结与感想/必须先吐槽一下,找工作面试确实是个累人的活呀,所以—->跳槽有风险,选择需谨慎.LZ我为什么要换工作呢?就不在这里说明了…直接进入正题,这周的面试基本每天从早面到晚,面试表都填吐了…大小公司都有,列举下这段时间常见的面试题和一些个人理解.PS:LZ我水平有限,不好的地方,大家轻喷^_^!(因为完全转载 2015-09-10 15:07:26 · 639 阅读 · 0 评论 -
ios开发细节及相关框架
ios开发细节http://segmentfault.com/a/1190000003722059?utm_source=Weibo&utm_medium=shareLink&utm_campaign=socialShare#articleHeader5原创 2015-09-10 18:53:05 · 543 阅读 · 0 评论 -
ios storyboadr(sizeClass)开发常用技巧及错误
跳转到任意storyBoard // 获取故事板 UIStoryboard *board = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; // 获取故事板中某个View UIViewController *next = [board instantiateViewControllerWithIde原创 2015-08-20 12:56:26 · 1101 阅读 · 0 评论 -
iOS性能优化:Instruments使用实战
采用Instruments 来分析整个应用程序的性能.发现很多有意思的点,以及性能优化和一些分析性能消耗的技巧,小结如下。Instruments使用技巧关于Instruments官方有一个很有用的用户使用Guide,当然如果不习惯官方英文可以在这里找到中文本翻译版本PDF参阅.Instruments 确实是一个很强大的工具,用它来收集关于一个或多个系统进程的性能和行为的数据极为方便,并转载 2016-01-11 15:38:33 · 636 阅读 · 0 评论 -
iOS内存管理和malloc源码解读
出自:https://yq.aliyun.com/articles/3065摘要最近由于排查问题,顺便对iOS的内存管理,尤其是malloc库稍微深入地了解一下,在这里整理出来,和大家分享一下。0. iOS内存基本原理在接触iOS开发的时候,我们都知道“引用计数”的概念,也知道ARC和MRR,但其实这仅仅是对堆内存上对象的内存管理。用WWDC某Session里的话说,这转载 2016-02-16 10:41:46 · 2436 阅读 · 0 评论 -
深入理解RunLoop
转自:http://blog.ibireme.com/2015/05/18/runloop/RunLoop 是 iOS 和 OSX 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理。之后会介绍一下在 iOS 中,苹果是如何利用 RunLoop 实现自动释放池、延迟回调、触摸事件、屏幕刷新等功能的。Index转载 2016-02-16 10:47:33 · 702 阅读 · 0 评论 -
iOS 保持界面流畅的技巧
转自:http://blog.ibireme.com/2015/11/12/smooth_user_interfaces_for_ios/这篇文章会非常详细的分析 iOS 界面构建中的各种性能问题以及对应的解决思路,同时给出一个开源的微博列表实现,通过实际的代码展示如何构建流畅的交互。演示项目在开始技术讨论前,你可以先下载我写的 Demo 跑到真机上体验一下:https转载 2016-02-16 11:02:04 · 816 阅读 · 0 评论 -
ios storyboard跳转前的验证
有时候用storyboard搭建界面时,需要满足一定的条件才让界面往下跳转。比如用storyboard搭建登陆界面时,如果输入的用户名为空,阻止storyboard往下跳转。比如登陆控制器的核心代码:#pragma mark - Navigation/** * 开始跳转,可以在这个方法中向下一个界面传入参数 * * @param segue 注意:[segue ident原创 2016-02-18 15:23:48 · 1742 阅读 · 0 评论 -
iOS分类(Category)和类扩展(Extension)的简单区别
一、分类1.1 分类简介• 分类只能增加方法, 不能增加成员变量、@property(可能编译不报错,但是运行有问题) • 分类可以访问原来类中的成员变量 • 如果分类和原来类出现同名的方法, 优先调用分类中的方法, 原来类中的方法会被忽略 • 方法调用的优先级(从高到低) ➢ 分类(最后参与编译的分类优先),只要有分类就优先调用分类,不考虑与主类的编译顺序。 ➢ 原来原创 2016-02-19 10:18:36 · 1266 阅读 · 0 评论 -
Objective-C Runtime 运行时之六:拾遗
前面几篇基本介绍了runtime中的大部分功能,包括对类与对象、成员变量与属性、方法与消息、分类与协议的处理。runtime大部分的功能都是围绕这几点来实现的。本章的内容并不算重点,主要针对前文中对Objective-C Runtime Reference内容遗漏的地方做些补充。当然这并不能包含所有的内容。runtime还有许多内容,需要读者去研究发现。super在Objective-转载 2015-06-05 11:44:05 · 542 阅读 · 0 评论 -
Objective-C Runtime 运行时之五:协议与分类
Objective-C中的分类允许我们通过给一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以做到。Objective-C中的协议是普遍存在的接口定义方式,即在一个类中通过@protocol定义接口,在另外类中实现接口,这种接口定义方式也成为“delegation”模式,@protocol声明了可以呗其他任何方法类实现的方法,协议仅仅是定转载 2015-06-05 11:38:53 · 614 阅读 · 0 评论 -
Objective-C Runtime 运行时之三:方法与消息
前面我们讨论了Runtime中对类和对象的处理,及对成员变量与属性的处理。这一章,我们就要开始讨论Runtime中最有意思的一部分:消息处理机制。我们将详细讨论消息的发送及消息的转发。不过在讨论消息之前,我们先来了解一下与方法相关的一些内容。基础数据类型SELSEL又叫选择器,是表示一个方法的selector的指针,其定义如下:typedef struct objc_selec转载 2015-06-05 11:34:44 · 736 阅读 · 0 评论 -
ios面试
1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么?Object-c的类不可以多重继承;可以实现多个接口,通过实现多个接口可以完成C++的多重继承;Category是类别,一般情况用分类好,用Category去重写类的方法,仅对本Category有效,不会影响到其他类与原有类的关系。 2.#import原创 2014-08-12 12:35:27 · 1281 阅读 · 0 评论 -
ios笔记
引用计数器: 1.方法的基本使用 1> retain :计数器+1,会返回对象本身 2> release :计数器-1,没有返回值 3> retainCount :获取当前的计数器 4> dealloc * 当一个对象要被回收的时候,就会调用 * 一定要调用[super dealloc],这句调用要放在最后面 2.概念 1> 僵尸对象 :所占用内存已经被回收原创 2015-01-13 14:11:03 · 868 阅读 · 0 评论 -
面试相关
1. 怎么保证多人开发进行内存泄露的检查.1> 非ARC可以使用使用Analyze进行代码的静态分析(xcode-->product-->analyze:蓝色表示建议)2> 为避免不必要的麻烦, 多人开发时尽量使用ARC单例设计相关:1.单例设计模式(Singleton) 什么: 它可以保证某个类创建出来的对象永远只有1个 作用(为什么要用): 节省内存开销; 如果有一些数原创 2015-04-26 00:29:51 · 609 阅读 · 0 评论 -
IOS 如何选择delegate、notification、KVO?
前面分别讲了delegate、notification和KVO的实现原理,以及实际使用步骤,我们心中不禁有个疑问,他们的功能比较类似,那么在实际的编程中,如何选择这些方式呢? 在网上看到一个博客上详细的分析了三者之间的区别以及各自的优势,博文地址为http://blog.shinetech.com/2011/06/14/delegation-notification-and-o翻译 2015-04-27 22:17:25 · 558 阅读 · 0 评论 -
运行时机制runtime
runtime : 运行时机制1.是什么1> runtime是一套比较底层的纯C语言API, 属于1个C语言库, 包含了很多底层的C语言API2> 平时编写的OC代码, 在程序运行过程中, 其实最终都是转成了runtime的C语言代码, runtime算是OC的幕后工作者3> 举例:OC :[[MJPerson alloc] init]runtime :objc原创 2015-04-28 23:13:09 · 752 阅读 · 0 评论 -
uiview面试
1. 怎么解决缓存池满的问题(cell)ios中不存在缓存池满的情况,因为通常我们ios中开发,对象都是在需要的时候才会创建,有种常用的说话叫做懒加载,还有在UITableView中一般只会创建刚开始出现在屏幕中的cell,之后都是从缓存池里取,不会在创建新对象。缓存池里最多也就一两个对象,缓存池满的这种情况一般在开发java中比较常见,java中一般把最近最少使用的对象先释放。原创 2015-04-28 23:14:42 · 676 阅读 · 0 评论 -
渲染自定义格式字符串的UILabel(同一个lable的不同文字可以显示不同的颜色和字体)
- (void)viewDidLoad{ [super viewDidLoad]; // self.label.text = @"啊哈哈哈好烦"; NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"啊哈哈哈好烦"]; // 设置原创 2015-04-28 23:32:41 · 1337 阅读 · 0 评论 -
block的实现原理
//// main.m//#import // block实际上是: 指向结构体的指针// 编译器会将block的内部代码生成对应的函数//void __test1_block_func_0()//{// NSLog(@"a is %d", 10);//}//void test1()//{// int a = 10;// // voi原创 2015-04-28 23:55:25 · 679 阅读 · 0 评论 -
NSOperaion相关
NSOperation(基于gcd): 配合 NSOperation和 NSOperatioQueue也能实现多线程编程; 使用步骤: 1,先将需要执行的操作封装在NSOperation中 2,将NSOperation对象添加到 NSOperationQueue中。系统会自动将NSOperationQueue中的NSOperation取出来放到一条新线程中执行;NSOper原创 2015-05-05 00:58:24 · 721 阅读 · 0 评论 -
gcd相关
gcd(纯C语言,面向任务和队列)优势:自动管理线程的生命周期任务:要执行的操作队列:用来存放任务使用GCD:定制任务-->将任务添加到队列中gcd会自动将队列中的任务取出,放到对应的线程执行;任务的取出会自动遵循队列的FIFO原则,先进先出;以同步(不具备开线程的能力)的方式执行任务:(当前线程中执行不会开新的线程)dispatch_async(queue, ^{原创 2015-05-05 00:30:21 · 557 阅读 · 0 评论 -
Objective-C Runtime 运行时之一:类与对象
Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时期做的事放到了运行时来处理。这种动态语言的优势在于:我们写代码时更具灵活性,如我们可以把消息转发给我们想要的对象,或者随意交换一个方法的实现等。这种特性意味着Objective-C不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。对于Objective-C来说,这个运行时系统就像一个操作系统一样:它让所有的工作可以转载 2015-06-05 11:13:39 · 973 阅读 · 0 评论 -
Objective-C Runtime 运行时之二:成员变量与属性
在前面一篇文章中,我们介绍了Runtime中与类和对象相关的内容,从这章开始,我们将讨论类实现细节相关的内容,主要包括类中成员变量,属性,方法,协议与分类的实现。本章的主要内容将聚集在Runtime对成员变量与属性的处理。在讨论之前,我们先介绍一个重要的概念:类型编码。类型编码(Type Encoding)作为对Runtime的补充,编译器将每个方法的返回值和参数类型编码为一个字符串,转载 2015-06-05 11:24:33 · 526 阅读 · 0 评论 -
Objective-C Runtime 运行时之四:Method Swizzling
理解Method Swizzling是学习runtime机制的一个很好的机会。在此不多做整理,仅翻译由Mattt Thompson发表于nshipster的Method Swizzling一文。Method Swizzling是改变一个selector的实际实现的技术。通过这一技术,我们可以在运行时通过修改类的分发表中selector对应的函数,来修改方法的实现。例如,我们想跟踪在程序中每转载 2015-06-05 11:37:40 · 456 阅读 · 0 评论 -
NSKeyValueObserving(KVO)
NSKeyValueObserving非正式协议定义了一种机制,它允许对象去监听其它对象的某个属性的修改。我们可以监听一个对象的属性,包括简单属性,一对一的关系,和一对多的关系。一对多关系的监听者会被告知集合变更的类型,以及哪些对象参与了变化。NSObject提供了一个NSKeyValueObserving协议的默认实现,它为所有对象提供了一种自动发送修改通知的能力。我们可以通过禁用自动发转载 2015-06-05 11:58:35 · 768 阅读 · 0 评论 -
Cocoapods系列教程与与模块化
Cocoapods系列教程Pod::Spec.new do |s|s.name = "MyAdditions" # 项目名称s.version = "0.0.1" # 版本号 与 你仓库的 标签号 对应s.license = "MIT" # 开源证书s.summary = "私人pod代码" # 项目简介s.homepage = "https://gitee.com/zp06原创 2018-04-24 19:32:44 · 257 阅读 · 0 评论