Skip to Main Content
iOS 编程基础:Swift、Xcode 和Cocoa 入门指南
book

iOS 编程基础:Swift、Xcode 和Cocoa 入门指南

by Matt Neuburg
January 2017
Intermediate to advanced content levelIntermediate to advanced
552 pages
9h 43m
Chinese
China Machine Press
Content preview from iOS 编程基础:Swift、Xcode 和Cocoa 入门指南
Cocoa
事件
461
这个时间加上
tolerance
之间的某一时刻触发。文档表明可以通过为其提供一个至少为
timeInterval
10%
的值来改进设备电池寿命与应用响应性。
比如,我开发过一个应用,它是个游戏并且带有分数;如果用户在
10
秒内没有移动,
那么我就要减分来惩罚用户。这样,每次用户移动时,我都会创建一个重复定时器,其
时间间隔是
10
秒(我还会将任何现有的定时器都置为无效);在定时器调用的方法中,
我会减分。
定时器存在一些内存管理问题,第
12
章将会介绍,此外定时器还有基于块的替代
方案。
11.4
委托
委托是一种面向对象的设计模式,指的是两个对象间的关系,其中主对象的行为是通过
另一个对象定制或协助处理的。第
2
个对象就是主对象的委托。这里面不涉及子类化,
实际上,第
1
个对象对委托类一无所知。
由于
Cocoa
实现了委托,下面来看看委托的运作方式。内建的
Cocoa
类有一个通常叫作
delegate
的实例变量(名字中当然会有
delegate
了)。对于
Cocoa
类的某些实例来说,
你会将该实例变量的值设为你自己的类的实例。在运行中的某些时刻,
Cocoa
类会通过
向其委托发送消息来决定接下来该做什么:如果
Cocoa
类实例发现其委托不为
nil
,同时
该委托可以接收这个消息,那么
Cocoa
实例就会向其委托发送消息。
回忆一下第
10
章关于协议的介绍,委托大量使用了协议。过去,委托方法列在了
Cocoa
类的文档中,其方法签名通过非正式协议(
NSObject
的一个类别)来告知编译器。但现在,
类的委托方法通常会列在协议自己的文档中。目前有 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

Aurélien Géron
Swift 人工智能实战:从基础理论到AI 驱动的应用程序开发

Swift 人工智能实战:从基础理论到AI 驱动的应用程序开发

Mars Geldard, Jonathon Manning, Paris Buttfield-Addison, Tim Nugent

Publisher Resources

ISBN: 9787111556350