美文网首页
iOS知识点总结<二>

iOS知识点总结<二>

作者: 陪你看日出去 | 来源:发表于2016-07-02 09:37 被阅读39次


1、UITableView复用机制:

      UITableView通过重用单元格来达到节省内 存的目的:通过为每个单元格指定一个重用标识符(reuseIdentifier),即指定了单元格的种类,以及当单元格滚出屏幕时,允许恢复单元格以便重用。对于不同种类的单元格使用不同的ID,对于简单的表格,一个标识符就够了。

2、OC中创建线程的方法是什么?如果指定在主线程中执行代码?如何延时执行代码?

       (1)创建线程的方式:

         NSThread、NSOperationQueue(NSOperation)和GCD;

       (2)主线程中执行的代码:

      • [self performSelectorOnMainThread:(nonnull SEL) withObject:<#(nullable id)#> waitUntilDone:<#(BOOL)#>];;

      • [self performSelector:<#(nonnull SEL)#> onThread:<#(nonnull NSThread *)#> withObject:<#(nullable id)#> waitUntilDone:<#(BOOL)#>];

     • dispatch_async(dispatch_get_main_queue(), ^{

             <#code#>

      });

        (3)执行延时操作:

     · double delayInSeconds = 2.0;

       dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

<#code to be executed after a specified delay#>

});

   · [self performSelector:<#(nonnull SEL)#> withObject:<#(nullable id)#> afterDelay:<#(NSTimeInterval)#>];

   · [NSTimer scheduledTimerWithTimeInterval:<#(NSTimeInterval)#> target:<#(nonnull id)#> selector:<#(nonnull SEL)#> userInfo:<#(nullable id)#> repeats:<#(BOOL)#>];

3、KVC和KVO的区别

(1)KVC(键值编码)是一种间接访问对象实例变量的机制,该机制可以不通过存取方法就可以访问对象的实例变量

(2)KVO(键值观察者)是一种能使得对象获取到其他对象属性变化的通知机制;

(3)实现KVC键值观察模式,被观察的对象必须使用KVC键值编码来修改它的实例变量,这样才能被观察者观察到。因此KVC是KVO的基础,或者说KVO的实现是建立在KVC的基础之上的。

4、响应者链:

        响应链是一个响应者对象的连接序列,事件或动作消息(或菜单编辑消息)依次传递。它允许响应者对象把事件处理的职责转交给其它更高层的对象。

         处理原则:

            事件被交由第一响应者对象处理,如果第一响应者不处理,事件被沿着响应者链向上传递,交给下一个响应者(next responder)。一般来说,第一响应者是个视图对象或者其子类对象,当其被触摸后事件被交由它处理,如果它不处理,事件就会被传递给它的视图控制器对象(如果存在),然后是它的父视图(superview)对象(如果存在),以此类推。如果都不能处理,事件被传递到窗口(UIWindow对象)再到程序(UIApplication对象)。如果整个过程都没有响应这个事件,该事件就被丢弃。


相关文章

网友评论

      本文标题:iOS知识点总结<二>

      本文链接:https://www.haomeiwen.com/subject/bqdqjttx.html