JSON

ReactiveCocoa入门教程(4)

字号+ 作者:H5之家 来源:H5之家 2015-11-11 18:48 我要评论( )

最后,为了使用这个signal,把下面的代码添加到viewDidLoad的最下面: [[selfrequestAccessToTwitterSignal]subscribeNext:^(idx){NSLog(@"Accessgranted");}error:^(NSError*error){NSLog(@"Anerroroccurred:%@",e

最后,为了使用这个signal,把下面的代码添加到viewDidLoad的最下面:

[[self requestAccessToTwitterSignal]     subscribeNext:^(id x) {         NSLog(@"Access granted");     } error:^(NSError *error) {         NSLog(@"An error occurred: %@", error);     }];?

 

构建运行,应该能看到下面这样的提示:

技术分享

 

如果你点击OK,控制台里就会显示subscribeNext:block中的log信息了。如果你点击Don‘t Allow,那么错误block就会执行,并且打印相应的log信息。

 

Acounts Framework会记住你的选择。因此为了测试这两个选项,你需要通过 iOS Simulator -> Reset Contents and Settings 来重置模拟器。这个有点麻烦,因为你还需要再次输入Twitter的登录信息。

 

链接signal

一旦用户允许访问Twitter账号(希望如此),应用就应该一直监测search text filed的变化,以便搜索Twitter的内容。

 

应用应该等待获取访问Twitter权限的signal发送completed事件,然后再订阅text field的signal。按顺序链接不同的signal是一个常见的问题,但是ReactiveCocoa处理的很好。

 

viewDidLoad中当前管道的代码替换成下面的:

[[[self requestAccessToTwitterSignal]     then:^RACSignal *{         @strongify(self)         return self.searchText.rac_textSignal;     }]     subscribeNext:^(id x) {         NSLog(@"%@", x);     } error:^(NSError *error) {         NSLog(@"An error occurred: %@", error);     }]; ?

 

then方法会等待completed事件的发送,然后再订阅由then block返回的signal。这样就高效地把控制权从一个signal传递给下一个。

 

注意:你在之前的代码中已经把self转成弱引用了,所以就不用在这个管道之前再写@weakify(self)了。

 

then方法会跳过error事件,因此最终的subscribeNext:error:  block还是会收到获取访问权限那一步发送的error事件。

 

构建运行,然后允许访问,你应该能看到search text field的输入会在控制台里输出。

2014-01-04 08:16:11.444 TwitterInstant[39118:a0b] m 2014-01-04 08:16:12.276 TwitterInstant[39118:a0b] ma 2014-01-04 08:16:12.413 TwitterInstant[39118:a0b] mag 2014-01-04 08:16:12.548 TwitterInstant[39118:a0b] magi 2014-01-04 08:16:12.628 TwitterInstant[39118:a0b] magic 2014-01-04 08:16:13.172 TwitterInstant[39118:a0b] magic!?

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别

    Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别

    2016-01-18 17:28

  • 正则表达式优化JSON字符串的技巧

    正则表达式优化JSON字符串的技巧

    2016-01-18 09:06

  • Linux学习笔记:MySQL字符集

    Linux学习笔记:MySQL字符集

    2016-01-17 18:24

  • PHP学习之字符串比较和查找

    PHP学习之字符串比较和查找

    2016-01-17 18:23

网友点评
p