如何为iOS项目编写好的基类?

时间:2014-03-30 16:47:15

标签: ios class base-class projects github-mantle

我已经开发了适用于iOS的应用程序,并发现有许多重复的任务。所以我想编写即将开始的项目将子类化的基类,这样可以花费更少的时间,更轻松地跨项目跟踪代码。最关心的是

  1. 编写好的基础模型类,它有很多策略(核心数据,存档,...)。此模型类还具有一些JSON到属性的转换技术,如Mantle,因此设备和服务器上的模型是相同的

  2. 撰写优秀的基础网络课程(主要使用AFNetworking)

  3. 编写好的基础ViewController 类。我看到一些重复的任务:避免使用ScrollView键盘,记录,崩溃跟踪,从Nib加载视图,......

  4. 查找并使用UIView,UINib,Autolayout等其他优秀类别 ...

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

    我只想询问有关制作这类基类的经验以及我可以从中学习的内容

1 个答案:

答案 0 :(得分:2)

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

  1. 基本模型 - 由于我只使用网络和核心数据模型,因此我使用MagicalRecord表示核心数据,JSONModel表示基于网络的模型(映射到API回复)。

  2. 网络课程 - 与AFNetworking以及之前提到的JSONModel相结合,我发现不需要任何其他内容。我可以轻松扩展类别

  3. UITextField中有许多库可以避免使用键盘UIScrollView,但主要是我只使用自定义代码。但如果我需要,我会关注TPKeyboardAvoiding。对于崩溃跟踪,我只使用CrashlyticsFlurry,他们提供自己的SDK,因此我不需要太多代码。我不再使用NIB了。

  4. 网络上有许多有用的类别。我创建了自己的存储库作为CocoaPod,它将所有有用的类别保存在一个pod中。我将存储库保持最新,并在需要时添加新类别和小类。它的缺点是你通常不需要所有这些,所以有时会加载太多的代码。但到目前为止,我没有注意到任何性能下降。如果您愿意,可以查看GitHub,它的外观。

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