美团
画一个原生和webview混合开发的框架,写出主要的方法
runtime 怎么把嵌套结构的数据赋值给模型,如何优化一下
什么是响应链,它是怎么工作的?
如何访问并修改一个类的私有属性?
iOS Extension 是什么?能列举几个常用的 Extension 么?
如何把一个包含自定义对象的数组序列化到磁盘?
Apple Pay 是什么?它的大概工作流程是怎样的?
iOS 的沙盒目录结构是怎样的? App Bundle 里面都有什么?
iOS 的签名机制大概是怎样的?
iOS 7的多任务添加了哪两个新的 API? 各自的使用场景是什么?
Objective-C 的 class 是如何实现的?Selector 是如何被转化为 C 语言的函数调用的?
UIScrollView 大概是如何实现的,它是如何捕捉、响应手势的?
Objective-C 如何对已有的方法,添加自己的功能代码以实现类似记录日志这样的功能?
+load 和 +initialize 的区别是什么?
如何让 Category 支持属性?
NSOperation 相比于 GCD 有哪些优势?
strong / weak / unsafe_unretained 的区别?
如何为 Class 定义一个对外只读对内可读写的属性?
Objective-C 中,meta-class 指的是什么?
UIView 和 CALayer 之间的关系?
+[UIView animateWithDuration:animations:completion:] 内部大概是如何实现的?
什么时候会发生「隐式动画」?
如何处理异步的网络请求?
frame 和 bounds 的区别是什么?
如何把一张大图缩小为1/4大小的缩略图?
一个 App 会处于哪些状态?
Push Notification 是如何工作的?
什么是 Runloop?
Toll-Free Bridging 是什么?什么情况下会使用?
当系统出现内存警告时会发生什么?
什么是 Protocol,Delegate 一般是怎么用的?
autorelease 对象在什么情况下会被释放?
UIWebView 有哪些性能问题?有没有可替代的方案。
为什么 NotificationCenter 要 removeObserver? 如何实现自动 remove?
当 TableView 的 Cell 改变时,如何让这些改变以动画的形式呈现?
什么是 Method Swizzle,什么情况下会使用?
1,下面代码在按钮点击后,在ARC下会发生什么,MRC下呢?为什么?
@property(nonatomic, assign) void(^block)();
- (void)viewDidLoad {
[superviewDidLoad];
int value = 10;
void(^blockC)() = ^{
NSLog(@"just a block === %d", value);
};
NSLog(@"%@", blockC);
_block = blockC;
}
- (IBAction)action:(id)sender {
NSLog(@"%@", _block);
}
2,在ARC环境下这段代码为什么不会崩溃?
@property(nonatomic, weak) void(^block)();
- (void)viewDidLoad {
[super viewDidLoad];
void(^ __weak blockA)() = ^{
NSLog(@"just a block");
};
_block = blockA;
}
- (IBAction)action:(id)sender {
_block();
}
3,下面是一个员工表,manager_id表示对应的boss的ID。通过一个SQL找出下表中比boss工资还高的人。。。。
id name salary manager_id
1 Noah 70000 NULL
2 西兰花 80000 1
3 椰菜花 80000 NULL
4 没钱花 80000 3
输出格式为:
name
西兰花
4,写一个函数,输入一个数如38,拆分 3 + 8 = 11,1 + 1 = 2,最后2无法拆分就返回(伪代码也行)
5,通过runtime添加的“关联对象”和类的实例变量有什么区别?使用时要注意什么?
6,用一个生活中的例子来说说同步和异步。
7,线程间通信在OC中有几种方式?分别是?常用那种?
8,使用快速枚举迭代一个可变数组时需要注意什么问题?怎么避免?
9,什么是面向对象的多态性?
10,UIViewController的presentViewController和UINavigationController的pushViewController方法分别多用于什么交互场景?
11,NSOperation和GCD的区别是什么?前者多用于什么场景?
12,面向接口编程指的是什么?为什么说面向实现编程是一种错误的编程方式?
13,在iOS开发中遇到那些类族(Class Cluster) ?如NSNumber这种。为什么需要这种设计方式?
14,javascript的原型链和OC的继承有什么区别?
15,Hybrid开发的优势在哪里?目前有那些框架可以实现Hybrid开发?
16,使用了ARC是不是就等于没有内存泄漏了?如果不是的话请举例。
17,下面代码中为什么可以直接用self?
[UIView animateWithDuration:1 animations:^{
self.view.backgroundColor = [UIColor yellowColor];
}];
下面这段代码可以用self吗?为什么?
- (void)doSomething {
[BlockClass doSomethingUseBlock:^{
NSLog(@"%@", self);
}];
}
18,进程的内存布局是怎样的?
19,在GCD中,那几种场景会出现死锁的现象?怎么避免?
20,怎么用NSOperation封装一个异步请求?这个Operation需要放到NSOperationQueue里调度的。
21,CoreFoundation和Foundation有什么区别?
22,怎么判断两个链表是双交的?
23,怎么判断一个链表存在环?
24,当一个View的bounds原点不为0的时候会出现什么情况?
25,OC的数组是怎么实现的?和C的数组区别在?简单说一下即可。
26,weak和assign有什么区别?
27,setNeedLayout的作用是什么?
28,什么时候用NS_OPTIONS,NS_ENUM?
微博算法题
1、64位操作系统,64位编译器 sizeof(int) sizeof(char) sizeof(int *) sizeof(char *) 分别是多少
2、64位操作系统,一个结构 struct aStruct{int a; char b; int c; char d}; 此时 sizeof(struct aStruct) 是多少? 如果是 struct aStruct{int a; char b; char d; int c};此时 sizeof(struct aStruct) 是多少?
3、全局并发队列和自定义并发队列的区别,如果现在有两种任务需要并发处理,其中一种是:任务单位小,数量多 另一种是:任务单位大,数量少 分别应该使用哪种队列处理?为什么?
4、为了防止循环引用,我们都知道使用weak(self); 但是程序中偶尔会见到strong(self); 这种用法,请问:strong(self)的应用场景是什么?
5、为了防止循环引用,我们都知道使用weak(self),是不是所有的block 如果内部需要使用对象本身,都需要使用weakself?举例说明
6、现有一个对象a,对象a 强持有了自定义对象b、c、d, 是不是可以说,当a的dealloc 只要执行了 我就可以认为内存没有泄漏了?如果不是的话,请举出例子让a对象完全释放
7、类方法和对象方法的区别何在?类方法的生存周期? 相对与对象方法,哪类处理适合使用类方法?
8、kvo监听是否一定是在主线程完成的?如果不是,请举例说明
9、某同事开启了一个NSTimer,但是无论如何这个timer都跑不起来,作为他的老大,代码看起来没什么问题,以你10年ios的开发经验,第一反应是问题出在哪?
10、多线程编程种,死锁产生的条件是什么?死锁是不是只在主线程发生?
11、举出一个例子,说明dispatch_sync 的应用场景
12、如何创建一个常驻线程?
13、我们知道,多线程读写,只要有1个写,就有可能出现并发问题,解决方案可以用锁,但我们又知道锁的效率不高,并且破坏程序结构,加锁的代码通常并不易理清逻辑,那么,还有什么样的手段能实现这个目的?(考虑队列) 如何实现?
14、基于13题的前提,假如现在有一个模型,写操作较少,但是读操作非常多,如何优化13题的模型?(考虑队列和dispatch_barrier函数族)
15、dispatch_group函数组的应用场景是什么?假如现在让你使用信号量(dispatch_semphore)来模拟类似的功能,如何实现?
16、原子操作atomic 修饰的变量本身是否可以认为是线程安全的? 如果不是,那什么类型的变量可以认为是安全的,又有什么样的变量是不安全的?举例说明即可
网友评论