Cocoa 我应该手动还是使用InterfaceBuilder创建对象?
我对Cocoa/Xcode比较陌生,不确定我是否以最“正确”的方式构建了我的应用程序。我有许多对象在应用程序运行时处于活动状态。我应该手动还是使用Interface Builder创建这些对象 我所指的对象类型:Cocoa 我应该手动还是使用InterfaceBuilder创建对象?,cocoa,xcode,interface-builder,Cocoa,Xcode,Interface Builder,我对Cocoa/Xcode比较陌生,不确定我是否以最“正确”的方式构建了我的应用程序。我有许多对象在应用程序运行时处于活动状态。我应该手动还是使用Interface Builder创建这些对象 我所指的对象类型: “downloader”,负责将文件下载到磁盘 用户界面更新程序,负责更新用户界面以显示下载文件的结果 我应该在IB中创建这些对象并用代码建立它们之间的连接吗?我通常在IB中尽可能多地构建对象,然后在遇到IB的限制时切换到代码。听起来你应该能够创建在interface builde
- “downloader”,负责将文件下载到磁盘
- 用户界面更新程序,负责更新用户界面以显示下载文件的结果
我应该在IB中创建这些对象并用代码建立它们之间的连接吗?我通常在IB中尽可能多地构建对象,然后在遇到IB的限制时切换到代码。听起来你应该能够创建在interface builder中描述的UI。这确实是个人偏好的问题 在我看来,IB非常擅长布局视图,所以我倾向于只将IB用于我的视图和视图控制器,并且我在视图控制器的viewDidLoad或init方法的代码中创建其他所有内容 在您的示例中,将“downloader”对象直接连接到接口似乎违反了MVC,因此我不想让downloader进入我的xib “接口更新程序”将与接口紧密连接,因此它可以位于nib中,尽管除非我有充分的理由不这样做,否则我可能会将该代码放入我的view controller类中
如果您是在代码中创建内容,请注意viewDidLoad/viewDidUnload可能会被调用多次,因为操作系统会在视图不可见时加载和卸载视图以节省内存。所以只需要把瞬变物体放在那里。。。视图控制器生命周期中必须存在的东西应该在init/dealoc方法中创建。我喜欢在代码中创建大多数对象的部分原因是,您对内存的控制级别更高。+1,用于提及违反MVC。老实说,我完全忘记了模型,这是我将来应该注意的。