首先,在 XCode 中,当使用 Interface builder 时,当我想创建一个新对象时,我将该对象拖到我的“资产”中。但是,如果不手动创建新的类文件,我就无法指定方法或任何东西。
你当然可以。只需使用检查器设置对象的类。
请注意,您只能将 nib 对象连接到插座或操作。您不能指定任何随机方法,也不应该指定 - 、 和 关键字的全部意义在于IBOutlet
在IBOutletCollection
代码IBAction
中声明这些属性/方法由 nib 使用。
使用界面构建器的“对象”有什么意义吗?
是的,但很少。通常您在代码中创建对象并将插座连接到它们。
应用程序的委托是您可能希望在 MainMenu 或 MainWindow nib 中创建的一个对象,如果您以这种方式构建您的应用程序(iOS 模板由于某种原因已更改为远离它)。
我为测试事物而构建的第一个应用程序,我将大部分代码放在 AppDelegate 类文件中。研究表明,AppDelegate 的目的只是处理应用程序事件,例如启动和关闭。我把方法放在这个类中是错的吗?
大概。应用程序的委托通常应该只处理与NS
/UIApplicationDelegate
协议相关的业务。
另一方面,可以将根视图控制器设置为应用程序的委托,如果这样做有意义的话(并且NS
/UIApplicationDelegate
实现代码不是太多)。您必须回答的问题(只有您可以为您的应用程序回答)是您是让根视图控制器成为应用程序的委托还是应用程序的委托成为根视图控制器。如果有疑问,请将它们分开。
它有什么不同吗?
长期,是的。创建一个Big Ball of Mud类非常容易,尤其是在应用程序的委托类中——没有明确定义和明确界定的职责。尽快将炸药带到这样的班级。
最后,如果我创建了几个类文件,每个类文件都通过构建并链接到类的接口来处理自己的功能,那么我该如何处理“主”文件?在我看来,'main' 文件和 'appdelegate' 类文件在大多数情况下会保持原样吗?
是的。它们是样板。
如果您没有在应用程序的委托中编写任何代码(或者已经删除了您放入新的和更好描述的类中的所有内容),这样剩下的就是空的方法体或根本没有,您可以安全地删除应用程序的代表。如果您改变主意,以后随时可以再次创建它。
请注意,如果您删除应用程序委托类,您还应该更改 main.m 文件 - 或 MainMenu/MainWindow nib,如果有的话 - 不引用它。如果您的UIApplicationMain
调用(或任何其他代码)引用了不存在的类,您的应用程序将不会构建,如果您的 MainMenu/MainWindow 笔尖(或任何其他笔尖)引用不存在的类,它将崩溃.
如果你需要,你的应用程序有一个委托并不可耻,但如果你不这样做,删除它和你用于它的类消除了未来在其中填充代码或使用它来存储三阶全局变量的诱惑。