scheduleInRunLoop作用

时间:2022-09-28 11:32:19

例子一:

    1. - (void)setUpStreamForFile:(NSString *)path {
    2. // iStream is NSInputStream instance variable
    3. iStream = [[NSInputStream alloc] initWithFileAtPath:path];
    4. [iStream setDelegate:self];
    5. [iStream scheduleInRunLoop:[NSRunLoop currentRunLoop]
    6. forMode:NSDefaultRunLoopMode];
    7. [iStream open];
    8. }

上面的例子显示,当你创建对象之后你应该设置其delegate。当把NSInputStream对象配置到一个run loop,并且有与流相关的事件(例如流中有可读数据)发生时,该对象会收到stream:handleEvent:消息。

在你open stream之前,给流对象发送一个scheduleInRunLoop:forMode: 消息,来将该对象配置到一个run loop接收stream events。这样,当流中没有数据可读时可以避免delegate阻塞。如果流是发生在另一个线程,你需要确认该流对象是配置在那个线程的run loop中。你不应该尝试从一个除了包含该流对象的run loop的线程的其他线程中对流进行操作。最后,对NSInputStream对象发送open消息开始对输入数据的流操作。

例子二:

    1. 1 NSURLRequest *request = ...
    2. 2 NSURLConnection *connection = [[NSURLConnection alloc]
    3. initWithRequest:request
    4. delegate:self
    5. startImmediately:NO];
    6. 3 [connection scheduleInRunLoop:[NSRunLoop currentRunLoop]
    7. forMode:NSRunLoopCommonModes];
    8. 4 [connection start];
    9. 第3句的作用:

The reason the connection delegate messages aren't firing until you stop scrolling is because during scrolling, the run loop is in UITrackingRunLoopMode. By default, NSURLConnection schedules itself in NSDefaultRunLoopMode only, so you don't get any messages while scrolling.

scheduleInRunLoop作用的更多相关文章

  1. 【原】AFNetworking源码阅读(五)

    [原]AFNetworking源码阅读(五) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇中提及到了Multipart Request的构建方法- [AFHTTP ...

  2. if __name__== "__main__" 的意思(作用)python代码复用

    if __name__== "__main__" 的意思(作用)python代码复用 转自:大步's Blog  http://www.dabu.info/if-__-name__ ...

  3. (转载)linux下各个文件夹的作用

    linux下的文件结构,看看每个文件夹都是干吗用的/bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基 ...

  4. github中的watch、star、fork的作用

    [转自:http://www.jianshu.com/p/6c366b53ea41] 在每个 github 项目的右上角,都有三个按钮,分别是 watch.star.fork,但是有些刚开始使用 gi ...

  5. web.xml中welcome-file-list的作用

    今天尝试使用struts2+ urlrewrite+sitemesh部署项目,结果发现welcome-file-list中定义的欢迎页不起作用: <welcome-file-list> & ...

  6. web&period;xml中load-on-startup的作用

    如下一段配置,熟悉DWR的再熟悉不过了:<servlet>   <servlet-name>dwr-invoker</servlet-name>   <ser ...

  7. SQLSERVER中NULL位图的作用

    SQLSERVER中NULL位图的作用 首先感谢宋沄剑提供的文章和sqlskill网站:www.sqlskills.com,看下面文章之前请先看一下下面两篇文章 SQL Server误区30日谈-Da ...

  8. 电容与EMC-电容不同功能时对整板EMC的作用

    一般我们的pcb板的器件有很多种类,但是值得特别关注的,很多人都会说是BGA.接口.IC.晶振之类,因为这些都是layout功能模块以及设计难点.然而数量上占绝对优势的器件却是阻容器件,之前围殴阻抗时 ...

  9. FTP的搭建与虚拟目录作用&lt&semi;之简单讲解&gt&semi;

    操作系统:win7 VS2010编写WebService与在IIS的发布<之简单讲解>中我已经说了IIS安装与使用,不明白的可以跳过去看. 1.添加FTP站点 2. 3. 4. 5. zq ...

随机推荐

  1. ImageView的Scaletype

    ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等. 设置的方式包括: 1. 在layout xml中定义android:s ...

  2. win7自带截屏便签 打开命令

    win7自带截屏 1.win+r 2.SnippingTool.exe    打开 便签 1.win+r 2.StikyNot.exe    打开 查本机ip 1.win+r 2.cmd 3.ipco ...

  3. JS判断手机端是否安装某应用

    方法一(网页上判断) if (navigator.userAgent.match(/(iPhone|iPod|iPad);?/i)) {   var loadDateTime = new Date() ...

  4. 原生js实现的瀑布流布局

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. &lbrack;android&rsqb; 轮播图-滑动图片标题焦点

    谷歌提供的v4包,ViewPager 在布局文件中,先添加<android.support.v4.view.ViewPager/>控件,这个只是轮播的区域 在布局文件中,布置标题描述部分 ...

  6. 团队项目选题报告(I know)

    一.团队成员及分工 团队名称:I know 团队成员: 陈家权:选题报告word撰写 赖晓连:ppt制作,原型设计 雷晶:ppt制作,原型设计 林巧娜:原型设计,博客随笔撰写 庄加鑫:选题报告word ...

  7. 转&colon;sock&lowbar;ev——linux平台socket事件框架&lpar;socket代理类&rpar; &period;

    前面分析了对socket基本操作的封装,并按照数据的传送方式写了两个类,本篇将写一个代理类提供给库的使用者使用的类. /**************************************** ...

  8. sqlserver 索引进阶(下)

    参考原文 http://www.cnblogs.com/tjy9999/p/4494799.html 第十级, 索引内部结构 建立索引的目的是加快对表中记录的查找或排序.为表设置索引要付出代价的:一是 ...

  9. Javascript与C&num;中使用正则表达式

    JavaScript RegExp 对象 新建一个RegExp对象 new RegExp(pattern,[attributes])           注: \d需要使用[0-9]来代替 参数 参数 ...

  10. LeetCode Remove Duplicates from Sorted Array删除整型数组中的重复元素并返回剩下元素个数

    class Solution { public: int removeDuplicates(int A[], int n) { ],*e=&A[]; //s指向开头第一个,e往后遍历相同的 i ...