CS193笔记 第八讲 多线程和文本框

本讲简介:多线程和Text Filed

本讲继续上一讲的demo。

多线程,但主要是和queue打交道。系统会协调thread去处理这些queue中的任务

线程/Queue的种类:
线程主要有三种,

Main Thread, 主线程,又称为UI线程。

Global Thread:

User created thread: Very rarely.
use this only if you have multiple, serially dependent activities

thread 和 queue 的关系

QOS

同步 vs 异步

GCD(Grand Central Dispatch)

Operation API vs DispatchQueue API

<pre> <code><ol>
<li> private func fetchImage() {
<li> if let url = imageURL {
<li> DispatchQueue.global(qos: .userInitiated).async { [weak self] in
<li> let urlContents = try? Data(contentsOf: url)
<li> if let imageData = urlContents, url == self?.imageURL {
<li> DispatchQueue.main.async {
<li> self?.image = UIImage(data: imageData)
<li> }
<li> }
<li> }
<li> }
<li> }</ol>
</code></pre>

第六讲留了一个课后作业,使用delegate的答案在这儿

这儿是在awakeFronNib()中设置的delegate。另外self的splitViewController成员是通过extension加入的,并不在原本的UIViewController的定义里。

<pre>
override func awakeFromNib() {
super.awakeFromNib()
self.splitViewController?.delegate = self
}

// MARK: - SplitViewController Delegate
func splitViewController(_ splitViewController: UISplitViewController, collapseSecondary secondaryViewController: UIViewController, onto primaryViewController: UIViewController) -> Bool {
if primaryViewController.contents == self {
if let ivc = secondaryViewController.contents as? ImageViewController, ivc.imageURL == nil {
return true
}
}
return false
}
</pre>

文本框 (Text Field)
文本框本身比较简单就是能显示,也能接受用户的输入。重点是如何处理键盘。另外最后还提了一句

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,981评论 19 139
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,216评论 30 472
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,466评论 25 708
  • 最近在搞一个视频截图的功能,自己在探索过程中,看到很多各种各样的解法,走了很多弯路,为了避免做相同功能的朋友们走很...
    hi_dhl阅读 5,548评论 9 10
  • Internet Service Provider - Chandigarh Get great deals on...
    broadbandchd阅读 181评论 0 1