码迷,mamicode.com
首页 > 移动开发 > 详细

ios面试题整理

时间:2015-07-22 12:19:36      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

(1).weak 和assign的区别?

assign: 用于非指针变量 

(2).IOS开发之----#import、#include和@class的区别?

1. 如果不是c/c++,尽量用#import。

2. 能在实现文件中#import,就不在头文件中#import。

3. 能在头文件中@class+实现文件中#import,就不在头文件中#import。

(3).Object-C Category和Extension的区别?

Category:

1.用于给class及其subclass添加新的方法

2.有自己单独的 .h 和 .m 文件

3.用于添加新方法,而不能添加新属性(property)

Extension常被称为是匿名的Category

1.用于给类添加新方法,但只作用于原始类,不作用于subclass

2.只能对有implementation源代码的类写Extension,对于没有implementation源代码的类,比如framework class,是不可以的

3.Extension可以给原始类添加新方法,以及新属性

(4).Block的引用循环问题 (ARC & non-ARC)

__weak __typeof(self)weakSelf = self;

__strong __typeof(weakSelf)strongSelf = weakSelf;

(5)程序启动的完整过程?

1.main函数

2.UIApplicationMain

* 创建UIApplication对象

* 创建UIApplication的delegate对象

3.delegate对象开始处理(监听)系统事件(没有storyboard)

* 程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法

* 在application:didFinishLaunchingWithOptions:中创建UIWindow

* 创建和设置UIWindow的rootViewController

* 显示窗口

3.根据Info.plist获得最主要storyboard的文件名,加载最主要的storyboard(有storyboard)

* 创建UIWindow

* 创建和设置UIWindow的rootViewController

* 显示窗口

ios面试题整理

标签:

原文地址:http://www.cnblogs.com/jiackyan/p/4666720.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!