【读书笔记】iOS-GCD-用法

代码:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

        //在后台进行网址的解析操作
        NSURL * url = [NSURL URLWithString:@"http://www.baidu.com"];
        NSError * error;
        NSString * data = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];
        if (data != nil) {
            dispatch_async(dispatch_get_main_queue(), ^{
                //成功。跳转回主界面
                NSLog(@"call back, the data is: %@", data);
            });
        } else {
            //失败,返回失败提示。
            NSLog(@"error when download:%@", error);
        }
    });

}

输出:

2015-07-15 21:51:37.902 CGD-使用[1719:81744] call back, the data is: <html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body style=‘margin:0px;overflow-x:hidden;overflow-y:hidden;‘><iframe id=‘i‘ src="http://www.baidu.com/?tn=96181616_hao_pg" scrolling=auto width=‘100%‘ height=‘100%‘ frameborder=‘no‘ onload=‘‘style=‘position:fixed;‘></iframe></body></html>

參考资料

http://www.cnblogs.com/pure/archive/2013/03/31/2977420.html

时间: 2024-11-05 20:48:36

【读书笔记】iOS-GCD-用法的相关文章

读书笔记——IOS之Web开发

Web开发 读书笔记:http://www.mincoder.com/article/2576.shtml 主要的请求方法 Get请求:数据以明文在URL中,数据量小 Post请求:数据大小没有限制 HEAD请求:请求头信息 程序的实现需要借助几个对象: NSURLRequest:建立了一个请求,可以指定缓存策略.超时时间.和NSURLRequest对应的还有一个NSMutableURLRequest,如果请求定义为NSMutableURLRequest则可以指定请求方法(GET或POST)等信

[读书笔记]iOS与OS X多线程和内存管理 [GCD部分]

3.2 GCD的API 苹果对GCD的说明:开发者要做的只是定义想执行的任务并追加到适当的Dispatch Queue中. "Dispatch Queue"是执行处理的等待队列.通过dispatch_async函数等API,在Block语法中记述想执行的处理并追加到Dispatch Queue中,Dispatch Queue按照追加的顺序,执行处理. Dispatch Queue分为两种: 种类 说明 Serial Dispatch Queue 等待现在执行中处理结束(顺序执行) Co

[读书笔记]iOS 7 UI设计 对比度

好久没写随笔了,最近在读<iOS 7 byTutorials>,很不错,推荐给大家. 每一个好的程序员也都是一个设计师,不懂设计的程序员不是好的CTO.哈哈,开个小玩笑. iOS 7设计的核心思想就是:-------->简洁.但在简洁的UI里面如何让用户发现当前界面的重点,对比度是我们最有力的工具. 对比度有下列四种用途 1.突出重点,淡化非重点 2.加强视觉效果 3.告诉用户哪里可以点击 4.增强文字可读性 举例说明,如图 这是一个简单的闹钟程序,先别着急往下看,先思考一下,这个界面在

[读书笔记]iOS与OS X多线程和内存管理 [Blocks部分-2]

2.3 Blocks的实现 2.3.1 Block的实质 通过命令"clang -rewrite-objc 文件名"能够将含有Block语法的源代码转换为C++源代码. 含有Block的源代码如下: #include <stdio.h>//不导入库文件无法运行 int main() { void(^testBlock)(void)=^{ printf("i am testBlock"); }; testBlock(); } 转换后的代码有五百行左右,这里

[读书笔记]iOS与OS X多线程和内存管理 [Blocks部分-3]

2.3.2 截获自动变量 通过转换后的源码可以发现,Block语法中使用的自动变量被作为成员变量追加到__main_block_impl_0结构体中,Block中没有使用的自动变量不会被追加,所以Block的变量截获只针对Block使用的自动变量. 源码: #include <stdio.h>//不导入库文件无法运行 int main() { int val1=0; int val2=10; void(^testBlock)(void)=^{ printf("i am testBlo

[读书笔记]iOS与OS X多线程和内存管理 [Blocks部分-4]

2.3.5 __block变量存储域 Block变量从栈复制到堆时对__block变量产生的影响 __block变量存储域 影响 栈 从栈复制到堆并被Block持有 堆 被Block持有 在多个Block中使用__block变量时,第一个Block从栈复制到堆时,__block变量也一并从栈复制到堆.在之后的Block从栈复制到堆时,__block变量被Block持有,__block变量引用计数增加.之前__block变量结构中的__forwarding能够做到"不管__block变量在栈上还是

[读书笔记]iOS与OS X多线程和内存管理 [Blocks部分-1]

第二章 Blocks 2.1 Blocks摘要 Blocks是C语言的扩充功能,是带有自动变量(局部变量)的匿名函数. Blocks保存自动变量的值. Blocks不是Objective-c独有的概念,在其他语言中(如Smalltalk或Ruby)也有对应的概念. 2.2 Blocks模式 2.2.1 Block语法 ^ 返回值类型 参数列表 表达式 返回值类型可以省略 ^ 参数列表 表达式 参数列表也可以省略 ^ 表达式 2.2.2 Block类型变量 可将Block语法赋值给声明为Block

编写高质量的iOS代码--Effective Objective-C 2.0 读书笔记

编写高质量的iOS代码--Effective Objective-C 2.0 读书笔记 这本书年初刷完,感觉不错,介绍了很多小点,都是平日不怎么关注的. 第1章 熟悉Objective-C 这章没什么好介绍 第1条:了解Objective-C语言的起源 第2条:在类的头文件中尽量少引入其他头文件 第3条:多用字面量语法,少用与之等价的方法 第4条:多用类型常量,少用#define预处理指令 要理解为啥要少用#define预处理指令. 然后具体用哪个, 自己定吧 第5条:用枚举表示状态.选项.状态

iOS开发中的那些的约定俗成(1)————《编写高质量iOS与OS X代码的52个有效方法》读书笔记(第一章)

iOS开发中的那些的约定俗成(1) ----<编写高质量iOS与OS X代码的52个有效方法>读书笔记(第一章) 前言 "我要成为一个高产的开发人员.""想要混的好,就得多努力." 写这些东西是因为毕竟看了书,但是看书看过去之后,也许印象不是很深刻,有些东西现在也理解不了,那我就把我理解的,现在就可以用到的东西,简单的写出来就好,让自己今后看到就能明白其中的意思. 还有就是锻炼一下表达,编辑能力,慢慢的提升自己,随时随地的都要有一个锻炼的心. 最后当然就

iOS 读书笔记 第一章

1.确定某个实例或类方法是否可用. 1)使用NSObject的类方法instancesRespondToSelector:来确定是否在该类的一个实例中存在一个特定的选择器. NSArray *array = @[@"1",@"2"]; if ([NSArray instancesRespondToSelector:@selector(sortUsingComparator:)]) { //do something use sortUsingComparator: }