Tag: 行为

具有不同行为的协议扩展

如您所知,您可以在该协议的扩展名中为协议方法提供默认实现。 但是,当您决定在协议中声明该方法或将其忽略时,您是否知道其中的含义? 我们将研究差异。 让我们从默认情况下不会发出声音的动物的协议定义开始。 协议动物{ func makeSound() } 扩展名动物{ func makeSound(){ 打印(“ [silence …]”) } } 然后,我们创建两个符合此协议Animal的对象Cat和Dog 。 他们俩都可以发出自己的声音: 猫:动物{ func makeSound(){ 打印(“喵!”) } } 狗类:动物{ func makeSound(){ 打印(“糟糕!”) } } 如果我们想创建动物的集合并想让它们全部说出来,我们可以创建一个像这样的数组: 让animal1 = Cat() 让animal2 = Dog() 让动物:[动物] = [动物1,动物2] 然后,我们可以遍历动物,让它们发出声音: 用于动物{ animal.makeSound() } 那么输出是什么? 是的…它将是喵! 和Wo! 但是,如果我们没有在协议中声明方法但保留默认实现,将会发生什么? 协议动物{} 扩展名动物{ func makeSound(){ 打印(“ [silence […]

加快Xcode行为

Xcode行为可以改变Xcode响应某些事件的方式。 默认行为可以通过在遇到断点时显示例如调试导航器来帮助您,但是它们可以使您的工作速度大大提高。 默认情况下未启用的行为列表。 起点是“行为”选项卡,可以在Xcode首选项中找到该选项卡,可以通过cmd + ,或使用Xcode -> Preferences菜单将其打开。 令人惊讶的是,这是事实。 当构建失败时,默认情况下,问题导航器不会打开。 这样的结果是您自己导航到问题导航器,以查看出了什么问题。 通过导航到当前日志,您甚至可以快速过滤错误,仅查看错误所在。 当测试失败时,您想导航到该测试并在修复后再次运行。 导航到失败的测试的起点是“测试导航器”。 您正在编写代码并运行应用程序以测试功能。 出现断点或问题,您突然进入了一个不同的文件,而这并不是您一直在等待的文件。 通过在运行的应用程序暂停时打开一个新标签页,您只需关闭调试标签页即可完成调试会话并返回工作文件。 您可以在应用程序暂停测试时执行完全相同的操作。 Xcode提供了更多功能来加快您的工作流程。 您可以阅读工作流类别中的更多文章,或查看我的有关加速作为iOS开发人员的演讲。 最初发表于 SwiftLee 。 更多帖子和更新: @twannl