PDF 课件和源代码下载地址:
作者回复: 👍👍
作者回复: 👍!
作者回复: shift+command+o 这个是open quickly的快捷键,可以在里面输入类和函数,快速的进行跳转
作者回复: 快捷键 command + R
作者回复: 应该是下载新的Xcode用的iOS13导致的。iOS13之后,appdelegate的指责发生了变化,具体的可以参考https://developer.apple.com/videos/play/wwdc2019/42 这个session。 简单的说和UI生命周期相关的回调都交给了SceneDelegate 这个delegate,而appdelegate主要负责 app 生命周期相关的回调。对于window来说,作为一个特殊的UI,也自然的变成了SceneDelegate的一个property,我们可以在SceneDelegate的头文件中找到它,并在willConnectToSession这个函数中使用。简单的说,我们讲视频中对应的代码移动到SceneDelegate.m中即可。
作者回复: tabbarItem虽然在UITabBarController.h这个文件中,可以看一下这个属性的上面一行,@interface UIViewController (UITabBarControllerItem) 系统函数其实是在这个文件中实现了一个UIViewController的扩展,是UIViewController的属性。
作者回复: 根据Apple的习惯,如果类的某一些属性,不是普世通用的,是在实现某些特定功能的时候才需要,那么一般的实现方式是声明一个类的扩展,然后声明这些属性,整体和特定的功能写在一起。这个也算是一个习惯,对于常用的开源项目和我们自定义的扩展,一般也都会和指定的场景声明在一起。回归到你的问题,如果我们没有tabbarcontroller,那么使用UIViewController是不需要关注tabBarItem属性的。那么根据上面所讲的,针对这种特殊的场景,一般就是对UIViewController进行扩展,然后写到tabbarcontroller相关的逻辑和文件中。所以我们可以在UITabbarController.h 中 找到@interface UIViewController (UITabBarControllerItem),以及对应的tabBarItem属性。当然如果想要定位这个属性在哪里声明,可以在xcode中按住command,然后点击这个属性,之后选择jump to Definition,xcode会自动跳转到属性声明的文件中。
作者回复: @[]是数组哈 @{}是字典 @()是转化成对象哈
作者回复: 建议使用xcformat这个工具 具体的在重构那一节课有讲解哈 36节
作者回复: 查找系统API 可以使用 File - Open Quickly,快捷键是shift+command+O 。 补全是xcode的能力哈,一般有提示后通过上下选择,点击tab或者回车确认。