· TTS
· Text To Speech
· 文本转语音
· 语音播报类
· 生成播放的内容
· 实现播放
· AVSynthesizer
· 系统自带
· 创建语音集成对象
· AVSynthesizer alloc init
· 创建播放内容
· Utterance
· 创建语音对象
· voice
· 默认只能设置当前手机的设置的语言
· 创建语言
· language
· 静态方法
· 设置为中文
· 开始播报
· [synThesizer speakUtterance:utterance];
· 停止播报
· isSpeaking?
• [self.sportSpeaker stopSpeakingAtBoundary:AVSpeechBoundaryImmediate];
• 注意线程的延迟
· 创建的时候播报
· 线程阻塞
· 不能在同一个线程中同事执行两个任务
· 解决
· 放到队列里面一个一个来
· 常见于微信的评论
· 把上一个任务取消掉
· 接口
· 职责决定
· 需求决定
· 在MVC中的地位
· 不显示/是M层
· 开始运动
· sportMainVC
· 状态改变播报
· sportTrackingVC
· 单位播报
· sportMapVC
· 多个控制器交互这个模型?
· 找一个:sportTracking拥有这三个控制器的所有所需要的数据
· 迪米特法则
· 不要进行模型之间的数据传递
· 模型要和控制器打交道