3月份网易阿里百度iOS实习面试题

今年开学陆续投了阿里、百度、网易的 iOS 实习生,下面就分享一下我在面试过程中所碰到的题目 (+2表示被问过2次),并根据我自己认为的难易程度分了个类。这些问题如果和网上的面试题目重复,纯属巧合 基础 DFS和BFS的区别及其使用场景 通知中心和代理的区别 weak和strong的区别 +3 什么时候使用到weak? 引用循环(retain cycle)是怎样产生的? Cocoa 有哪些消息传递机制? 简述ViewController的生命周期 什么是RestFul API 中等 »

Block的实现

把 Block 语法转换成 C 代码 初次接触 Block 的时候,觉得 Block 似乎是 Objective-C 的一种特殊语法。但我们知道 Objective-C 最终是被编译器编译成 C 语言的,因此 Block 也不例外。LLVM 有一个选项-rewrite-objc可以把 Objective-C 代码转换成人们能看懂的 C »

ReactiveCocoa快速入门

最基本的使用(订阅一个信号),以TextField为例 每当textField的text属性发生变化时则emit 一个信号,这个信号可以进行二次处理(这些处理结果是返回一个signal,一般情况下是self),比如filter、map,最后subscriber可以在块里执行后续的操作. filter:过滤返回值为真的信号 map: 把信号emit出的值类型做一个映射,比如把text值的signal映射成bool [[self.usernameTextField.rac_textSignal filter:^BOOL(id value) { NSString *text »

NavigationBar Playground

可动态调整大小的导航条 要想调整导航条(NavigationBar)的大小或位置,只需改变他的frame即可。 但怎样让导航条上的那些控件(按钮、标题、searchbar之类的)也能成一定比例的缩小或者消失呢?当然是对这些视图做仿射变换(CGAfineTransfrom)。 我们知道UIBarButtonItem继承自UIBarItem,UIBarItem继承自NSObject,不能对它做一些UIView能做的仿射变换。 但是NavigationController.navigationItem有一个属性:titleView可作为我们自定义控件(所有继承自UIView的控件)的容器。 实现动态导航条的思路:当检测要触发调整导航条的事件时(scrollView向下向上滚动或Tap导航条等等),1、将导航条向上移动20个Point(因为状态栏的宽度是20) »