Closed. This question needs to be more focused 。它目前不接受答案。












想改善这个问题吗?更新问题,使其仅通过 editing this post 关注一个问题。

7年前关闭。



Improve this question




我已经为 iOS 开发了一段时间的应用程序,发现有很多重复的任务。因此,我想编写即将进行的项目将成为子类的基类,以便在跨项目跟踪代码时花费更少的时间并更轻松。最关心的是
  • 编写好的 基础模型 类,该类具有许多策略(核心数据、归档等)。这个模型类还有一些 JSON 到属性的转换技术,比如 Mantle,这样设备上和服务器上的模型是相同的
  • 编写好的 基础网络 类(主要使用 AFNetworking)
  • 编写好的 基础 ViewController 类。我看到一些重复的任务:避免使用 ScrollView 使用键盘、日志记录、崩溃跟踪、从 Nibs 加载 View 、...
  • 查找并使用其他一些 好的类别 用于 UIView、UINIb、Autolayout,...

  • 这些只是我的担忧。这似乎是一个模糊的话题,我不问如何使用库或如何制作可重用的组件。

    我只是想问一下制作这些基类的经验以及我可以从哪里学习

    最佳答案

    您不是唯一遇到此问题的人,我在许多项目中都遇到过同样的问题。 所以这个问题最好的解决方案是开源库。 好的通常会经常更新并跟上 Apple 的 SDK 版本。我将解释我用什么来保持样板代码最少。

  • 基础模型 - 由于我只使用网络和核心数据模型,所以我将 MagicalRecord 用于核心数据,将 JSONModel 用于基于网络的模型(映射到 API 响应)。
  • 网络类 - 与 AFNetworking 和前面提到的 JSONModel 结合使用,我发现不需要其他任何东西。我可以使用 类别 轻松扩展那些。
  • 有许多库可以避免 UITextField 与键盘在 UIScrollView 中的使用,但大多数情况下我只使用自定义代码。但如果我需要一个,我会关注 TPKeyboardAvoiding 。对于崩溃跟踪,我只使用 CrashlyticsFlurry ,它们提供自己的 SDK,所以我不需要太多代码。我不再使用 NIB 了。
  • 网上有很多有用的分类。我创建了自己的存储库作为 CocoaPod,它将所有有用的类别保存在一个 Pod 中。我使存储库保持最新状态,并在需要时添加新类别和小类。不利的一面是您通常不需要所有这些,因此有时会加载太多代码。但直到现在我还没有注意到任何性能下降。如果你愿意,你可以看看 GitHub ,它的外观。

  • 不要忘记项目 初始化 ,我一直在研究我自己的自定义 Xcode 项目模板来解决这个问题。

    关于ios - 如何为 iOS 项目编写好的基类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22746753/

    10-11 23:24
    查看更多