Basic

1 Why Objective-C is a dynamic language?

Objective-C provides powerful runtime features, such as add method/properties, modify method in runtime.

The essence of Objective-C calling method or property is to send a message to an object.

The compile time, the Objc will not check the method's implementation.

2 Tell me some MVC, MVVM, MVP

MVC- Model, View, and Controller

MVVM - Model, View and ViewModel

MVP - Model, View and Presenter

3 Why we use "weak" for delegation?

Avoid retain cycle

parent has a strong property to the child

child has a weak property that type is delegation protocol referencing to parent

What's the difference between "delegate" and "datasource"?

What's the difference between "Block" and "Delegation"?

4 What's the essence of "@property"?

How many parts does "@property" have?

What's the purpose of "@dynamic" ?

What's the purpose of "@synthesize"?

5 What are the default property attributes?

6 Why we use "copy" attribute for "NSString"?

What's the problem for using "strong" attribute for "NSString"

Well, using "copy" or "strong" is depending on requirements.

7 How to have "deep copy" function, for customized object?

8 What's the difference between "copy" and "mutable copy" for mutable object and immutable object?

If the set uses "content copy", the element of the set is still "content copy"?

9 Why "@IBOutlet" describing UIView is properly to use "weak"?

10 Difference between "nonatomic" and "atomic"?

Atomic is absolutely thread-safe? Why?

If not, what's the proper way to implement it?

11 How to implement customized layout for UICollectionView

12 What's the weakness for using Storyboard? How to avoid?

13 Difference between Process, Thread?

Difference between Async, Sync?

Difference between Parallel, Concurrent?

14 Inter Process Communication

15 GCD functions: group, barrier, semaphore, thread-sync

16 How to use "queue" to avoid race condition or resource competition

17 What's the solution for persistence store? Do you use FMDB?

18 List functions of AppDelegate?

What the process from background to foreground?

What the process from foreground to background?

What the process of first time launch?

19 Advantages of NSCache, comparing NSDictionary

20 Do you know "Designated Initializer"? What's the concern when using it?

21 What's the memory management of Objc? And for Object?

Middle - Block

1 What's the essence of "Block"?

How many kinds of "Block"? And What's the condition they are using?

2 As the default, why we cannot modify captured variable by "Block"?

What's the function of "__block"?

3 Give me a example for "Retain Cycle"?

How to use "Block" to implement UI reverse passing or call back

Middle - Runtime

1 What happened, when Objc is sending a message to a object?

2 When we will see "unrecognized selector" error?

What's the mechanism to avoid this?

3 How the runtime implement that released "weak" variable will automatically change to "nil" ?

4 What's the change of class structure, when we add a "property" to a class?

Middle - Runloop

1 what's the purpose of runloop?

What's the relationship between runloop and thread?

Does main thread open the runloop as the default? How about other thread?

2 What's the purpose of runloop model? What are they?

3 Why NSTimer will freeze when scrollView is scrolling?

The setting is NSTimer added in the main thread and main runloop, runloop mode is NSDefaultRunLoopMode(kCFRunLoopDefaultMode)

4 How to implement Autorelease pool?

Middle - Class Structure

1 isa 指针是什么? (对象的isa, 类对象的isa, 元类型的isa)

2 类方法和实例方法的区别

3 介绍一下Category, 能用分类做什么? 内部是如何实现的? 他为什么会覆盖掉原来的方法?

4 运行时能增加成员变量吗? 能增加属性吗? 如果能 如何增加? 如果不能, 为什么?

5 Objc中向一个nil对象发送消息将会发生什么?(返回值是对象, 是标量, 结构体)

Advanced

1 UITableView的优化方法 (缓存高度, 异步绘制, 减少层级, hide, 避免离屏渲染)

2 有没有用过运行时, 用它都能做什么? (交换方法, 创建类, 给新创建的类增加方法, 改变isa指针)

3 看过哪些第三方框架的源码? 都是如何实现的? 多图下载如何设计?

4 SDWebImage的缓存策略?

5 AFN 为什么添加一条常驻线程?

6 KVO的使用? 实现原理? 为什么要创建子类来实现?

7 KVC的使用? 实现原理? KVC拿到Key以后是如何赋值的?

8 知不知道集合操作符, 能否访问私有属性? 能不能直接访问 _ivar instance variable

Behavior

1 Has any released project in App store?

2 Which part you did in this project? Find a component explain how to implement?

3 Have you ever faced a difficult problem? How to solve it?

4 How to solve a problem that you totally cannot solve? Give me an example.

5 Do you reading? What's the recent reading? What you gain in this book?

6 Do you use some notes software/tools? Is it cloud based or multiple platform, or multiple source capture? If not, how to review knowledge?

7 Do you use Calendar/List software/tools? If not, how to arrange a plan?

8 Do you watch blog? Do you write blog? If so, what you gain? If not, why not do that?

results matching ""

    No results matching ""