objective-c - 通用应用程序的命名约定

标签 objective-c xcode ios naming-conventions universal-binary

我正在编写一个通用的 iOS 应用程序(iPad 和 iPhone),发现自己的类名非常长,无法在两个应用程序之间共享:

FamilyViewController_iPhone.h/m
FamilyViewControllerA_iPad.h/m

DetailViewControllerB_iPhone.h/m
DetailViewControllerB_iPad.h/m

同样,这些家伙里面的类都有完整的名称(包括设备),主要是为了让 Interface Builder 可以轻松使用它们。

我考虑过像 AControllerA.h 和 BControllerA.h 这样的东西,其中 A=iPhone 和 B=iPad,但我对那个选项也不感兴趣。

在 iOS 通用应用程序中,此类类的常规约定是什么 - 还是我(希望)遗漏了一些可以避免这种必要性的东西?

最佳答案

我认为您通过像这样分离您的功能而走上了一条错误的道路。虽然 iPad 应用程序显然可以具有与 iPhone 应用程序不同的 UI 结构和设计,但最好尽可能保持抽象。

我避免在我的 View Controller 中使用平台名称。我会:

FamilyViewController.h
FamilyViewController.m
FamilyViewController.xib (which is used for the iPad UI)
FamilyViewController~iphone.xib

您很可能会在 iPhone 和 iPad 上拥有极其相似的功能,或者即使不一样,您仍然会有很多重叠。

我也从不让我的 View Controller 充当我的表 Controller 。我将该功能保留在单独的对象中。这样,如果 iPhone 应用程序在不同屏幕上有 2 或 3 个表格,但 iPad 在同一屏幕上显示所有 3 个表格,您只需实例化每个表格 Controller ,所有代码都是可重用的。

关于objective-c - 通用应用程序的命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5200820/

相关文章:

ios - rangeOfComposedCharacterSequencesForRange 将 0 个字符范围转换为 1 个字符范围

objective-c - 是否可以在现有 XCode 项目 (OS X) 中用 Chromium (CefBrowser) 替换 WebView?

ios - 2 个完全相同的 iOS 应用程序,除了数据库不同

ios - pagemenu-navigation 右栏按钮项(不能按tabs隐藏)

objective-c - 解析 XML CDATA block

ios - Protocol buffer 代码针对 iOS 模拟器进行编译,但不适用于设备

iOS:快速将 UnsafeMutablePointer<Int8> 转换为字符串?

javascript - 如何开始 phonegap 开发?

objective-c - 对多个 Core Data 实体重用 NSTableView 会导致越界错误

iphone - 在 Xcode 中设置 RestKit