zoukankan      html  css  js  c++  java
  • ios面试题整理

    (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

    * 显示窗口

  • 相关阅读:
    usb2.0 规范学习笔记
    Linux开机启动程序详解[转]
    linux 系统运行级别及修改[转]
    linux下开发板网络速度测试记录
    tcp 和 udp 缓冲区的默认大小及设置【转】
    linux 环境变量的设置【转】
    1014. Waiting in Line (30)
    构建乘积数组
    数组中重复的数字
    把字符串转换成整数
  • 原文地址:https://www.cnblogs.com/jiackyan/p/4666720.html
Copyright © 2011-2022 走看看