• 经典面试总结1


    1.UItableview优化机制:

    UItableview一般只会加载显示出来的cell,如果滚动时(上下拉刷新时)将会出现新的cell,首先从缓存池中去取,如果缓存池中没有cell就去重新创建。

    2.程序的启动流程:

    1、main.m是程序的入口

    2、UIApplicationMain()创建应用程序对象,并且为此对象指定委托,检测程序的执行,同时开启事件循环,处理程序接收到的事 件

    3、UIApplicationDelegate方法的执行 4、加载window
    5、指定根视图控制器 6、在指定的试图控制器中添加控件,实现应用程序界面

    1.首先创建uiapplication对象2.创建delegate对象,并且成为uiapplication对象的代理属性3.开启主运行循环:目的是让程序一直运行起来4.加载info.plist文件,判断info.plist文件有没有指定main.stortboard文件,如果指定的话就加载main.stortboard。

    3.传值问题:

    代理:什么时候使用代理?代理可以用来传值        封装一个控件时经常使用代理,主要是为了程序的扩展性,方便以后维护和升级。另外苹果官方的控件多是使用代理(UItableview,scrollow等)

    使用代理时,需要明确对象才可以传值

    通知:一般也可以用来传值,更多的时候是通知其他的对象做事情,使用通知不需要管消息的接收者和发送者,通知使用完毕后,记得要移除通知。

    是么时候使用通知:一般情况下是两个没有关系的对象,进行交流,这个时候会使用通知(监听网络状态或键盘时可以使用)。

    KVC:一般情况下转模型的时候会用到,当碰到一些readonly属性时,可以使用kvc简化步骤。

    kvo: 一个对象监听另一个对象属性的值,并且能够发现值的变化,适合任何类型的对象监听另一个对象的改变。只能对属性的变化做出响应,不能对方法和动作做出反应。

    block:     是么时候调用:一般也是用来传值,AFN就是使用Block封装的代码,一般的网络请求是异步请求,并不会马上返回数据,表示一个方法不能直接返回数据,而是通过Block回掉,block用来保存一段代码,先把这段代码放到block中,请求成功后直接调用block,完成传值。

    使用注意点:1.block保存到模型中,MRC下使用copy修饰(只有通过copy修饰,才能把block放到堆内存中),ARC下可以使用strong和copy修饰,都是为了把block放到堆内存中管理。

    4.Controller的几个方法的区别;

    loadview:加载view到内存   viewdidload:进一步初始化这些view  内存不足时调用viewdidunload

    5. 

     获取项目根路径,并在其下创建一个名称为userData的目录? // 获取根路径

    NSArray *paths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:];
    // 创建文件系统管理器
    NSFileManager *fileManager = [[NSFileManager alloc] init];

    // 判断userData目录是否存在
    if(![fileManager fileExistsAtPath:[NSString stringWithFormat:@"%@/userData", documentsDirectory]]) { // 不存在,创建一个userData目录
    [fileManager createDirectoryAtPath:[NSString stringWithFormat:@"%@/userData", documentsDirectory]withIntermediateDirectories:false attributes:nil error:nil];
  • 相关阅读:
    VMware Workstation9安装Mac OS X10.9系统
    如何在windows下的Python开发工具IDLE里安装其他模块?
    Git在下搭建下环境的工具
    Git的安装与使用
    Linux(CentOs6.4)安装Git
    VMware虚拟机上网络连接(network type)的三种模式--bridged、host-only、NAT
    centos 6.5 升级内核 linux 3.12.17
    让CentOS系统时间同步
    编译安装LNMP Centos 6.5 x64 + Nginx1.6.0 + PHP5.5.13 + Mysql5.6.19
    64位CentOS5.6安装Mysql 5.5.11GA
  • 原文地址:https://www.cnblogs.com/liuyang666/p/5235887.html
Copyright © 2020-2023  润新知