iOS 面试总结 二
1.用三种方法生成内容为数字 1,2 ,3 的可变数组。(使用Objective-C,尽量一行代码实现)
//方法一
NSMutableArray *arr1 = [[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3",nil];
//方法二
NSMutableArray *arr2 = [[NSMutableArray arrayWithObjects:@"1",@"2",@"3", nil];
//方法三
NSMutableArray *arr3 = [NSMutableArray addObjectFromArray:arr];
2.Objective-C 中,分类(Category)和扩展 (Extension)的异同? ##?
- 相同:都可以给类添加额外的方法;
- 不同:分类只能添加方法不能添加属性,扩展可以点击属性和方法,但方法一对哟啊实现。
- category和extensions的不同在于后者可以添加属性。另外后者添加的方法是必须要实现的。
extensions可以认为是一个私有的Category。
3. 你了解哪些 KVO 的开源封装?##
KVOController https://github.com/facebook/KVOController
不是特别了解这方面 在git上找个了start最多的。
4.是否了解Java? Java 中的Interface 与 Objective-C 中的 Protocol 有哪些区别?
OC中的代理有2层含义,官方定义为 formal搜索和informal protocol。前者和Java接口一样。informal protocol中的方法属于设计模式考虑范畴,不是必须实现的,但是如果有实现,就会改变类的属性。
5.你了解哪些设计模式?(MVC、观察者、代理、单例除外)
MVVM (Model——View——ViewModel)
MVVM:一个 MVC 的增强版,Model 层自然少不了,ViewModel 表示网络请求、视图页面逻辑和一些复杂业务逻辑代码从 Controller 剥离出来生成一个新的对象,以减少 controller 层的业务逻辑和页面逻辑 。
MVVM 可以兼容你当下使用的 MVC 架构。
MVVM 增加你的应用的可测试性。
MVVM 配合一个绑定机制效果最好。
(MVC、观察者、代理、单例 这些就不说了,自行百度吧)
6.MVVM 全称? 是否使用过 MVVM
请看第五题。
7.写出以下属性在 MRC 环境中的赋值方法。
@property(nonatomic, copy) NSString *apple;
---------------------------------------------
- (void)setApple:(NSString *)apple // setter
{
if(_apple != apple){
[_apple release];
_apple = [apple copy]; // 如果属性里面的是retain 就将copy 换成 retain
}
}
- (NSString *)apple // getter
{
return [[_apple retain] autorelease];
}
----------------------------------------------
8.声明一个内容为 "iOS" 的全局非静态字符串常量。##
NSString *string = @"ios";
静态类中的成员加入static修饰符,即是静态成员.所有没有加Static的成员都是非静态成员.
9.写出以下代码运行结果:
NSlog@(@"3");
dispatch_after(dispatch_time(DISPATCH_TIME_NOW,(int64_t)(1*NSEC_PER_SEC)),dispatch_get_main_queue(),^{
dispatch_sync(dispatch_get_main_queue(),^{
NSLogy(@"2");
});
});
NSLog(@"1");
输出为:3;
发生主线程锁死。
10.以下写法会导致哪些问题?
@property (copy)NSMutableArray *apples;
两个问题:1、添加,删除,修改数组内的元素的时候,程序会因为找不到对应的方法而崩溃.因为 copy 就是复制一个不可变 NSArray 的对象;2、使用了 atomic 属性会严重影响性能 ;
11.谈谈 instancetype 和 id 的区别
相同点:
作为方法的返回类型
不同点:
1、instancetype 可以返回和方法所在类相同类型的对象,id只能返回未知类型的对象。
2、instancetype只能作为返回值,id可以作为参数.
http://blog.sina.com.cn/s/blog_139cc81e90102vvw3.html
未完 待续
iOS 面试总结 二的更多相关文章
- iOS 面试基础题目
转载: iOS 面试基础题目 题目来自博客:面试百度的记录,有些问题我能回答一下,不能回答的或有更好的回答我放个相关链接供参考. 1面 Objective C runtime library:Obje ...
- iOS面试贴士
iOS面试小贴士 ———————————————回答好下面的足够了------------------------------------- 多线程.特别是NSOperation 和 GCD 的内部原 ...
- IOS面试攻略
IOS面试攻略(1.0) 2013-10-13 20:58:09| 分类: IOS面试 | 标签:ios知识点总汇 ios面试 |举报|字号 订阅 来自:伊甸网 @ 看到这个关键字,我 ...
- iOS面试的算法相关
转自:https://www.jianshu.com/p/c4820b159159 面试中遇到的这些算法,在平常工作中,基本不会用到. 不过现实的面试中经常喜欢问关于算法的问题 有些还要求写出代码.一 ...
- iOS 面试秘籍全套
栏目将持续更新--请iOS的小伙伴关注! (答案不唯一,仅供参考,文章最后有福利) iOS面试题大全(上) iOS面试题大全(下) 目录: iOS面试题:Run Loop iOS面试题:性能优化 ...
- ios面试技术要点
iOS面试 技术总结点(可参考):多线程 运行时 runloop app框架 几种动画编程 jsonmodel原理 sdwebimage原理 masonry怎么应用及原理 应用框架有哪些 说一下Fac ...
- 微信连WiFi关注公众号流程更新 解决ios微信扫描二维码不关注就能上网的问题
前几天鼓捣了一下微信连WiFi功能,设置还蛮简单的,但ytkah发现如果是ios版微信扫描微信连WiFi生成的二维码不用关注公众号就可以直接上网了,而安卓版需要关注公众号才能上网,这样就少了很多ios ...
- XMPPFrameWork IOS 开发(二)- xcode配置
原始地址:XMPPFrameWork IOS 开发(二) 译文地址: Getting started using XMPPFramework on iOS 介绍 ios上的XMPPFramewor ...
- C C++ OC iOS面试重点问题(一)
C C++ OC iOS面试重点问题(一) 1.字符串常量需要加\0 2.逻辑运算 位操作(经典:实现两个数的交换) 3.关键字 4.引用和指针的区别和联系 5.如何引用一个已经定义过的全局变量? ...
随机推荐
- 时间同步ntp服务的安装与配置(作为客户端的配置
在linux环境下,我们不仅可以自己设置时间,也可以对系统进行时间的同步,比如同步时间到某台物理机上或虚拟机,皆可!接下来我们就以同步时间到某台物理机为例, 一起学习学习. 1.配置本地yum源(挂载 ...
- 别老嫌Mac系统难用 这些快捷键你都用过吗
苹果今年10月发布的全新带把儿(bar)的MacBook,轻薄炫酷的外观大受欢迎,其中当然不乏很多从Windows转到Mac阵营的用户.不少习惯了Windows操作习惯的用户在上手Mac时都会觉得非常 ...
- 采用cocos2d-x lua 的listview 实现pageview的翻页效果之上下翻页效果
--翻页滚动效果local function fnScrollViewScrolling( sender,eventType) -- body if eventType == 10 the ...
- October 26th Week 44th Wednesday 2016
No matter how far you may fly, never forget where you come from. 无论飞得多高,也不要忘记起飞的地方. I never forget w ...
- iOS 微信支付总结
1.支付流程 https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_3 商户系统和微信支付系统主要交互说明: 步骤1:用户在商户APP中选择 ...
- TFS API : 四、工作项查询
TFS API : 四.工作项查询 本节将讲述如何查询工作项,将用户统计数据. 使用WorkItemStore.Query方法进行查询工作项,其使用的语法和SQL语法类似: Select [标题] f ...
- Swift - 键盘弹起,遮挡输入框
extension LoginViewController:UITextFieldDelegate { func textFieldShouldReturn(textField: UITextFiel ...
- CNN初步-2
Pooling 为了解决convolved之后输出维度太大的问题 在convolved的特征基础上采用的不是相交的区域处理 http://www.wildml.com/2015/11/unde ...
- Device Tree(二):基本概念
转自:http://www.wowotech.net/linux_kenrel/dt_basic_concept.html 一.前言 一些背景知识(例如:为何要引入Device Tree,这个机制是用 ...
- 【Java EE 学习 69 中】【数据采集系统第一天】【SSH框架搭建】
经过23天的艰苦斗争,终于搞定了数据采集系统~徐培成老师很厉害啊,明明只是用了10天就搞定的项目我却做了23天,还是模仿的...呵呵,算了,总之最后总算是完成了,现在该好好整理该项目了. 第一天的内容 ...