在iOS中创建自己的自定义库?

时间:2012-09-10 04:16:18

标签: objective-c ios xcode model-view-controller shared-libraries

我对编程很新,并希望更有效地开始编程。尝试我经常发现自己偏离了MVC模型。

我想知道在xcode objc中编码时是否有任何提示或方法可以保持代码的有序性?更具体一点(我知道你们这样:)我想

  1. 能够编写可以从一个项目带到另一个项目的库或自包含代码
  2. 与其他人分享我的代码作为开源项目
  3. 防止自己编写不遵循正确结构的混乱代码

2 个答案:

答案 0 :(得分:5)

  • 使用高警告级别。干净利落地建造。
  • 删除所有静态分析仪问题。
  • 写一些单元测试。
  • 保持公共接口小。
  • 指定库的依赖项(例如,最低SDK版本和依赖库)。
  • 定期编译多个/支持的操作系统版本。
  • 了解如何创建和管理静态库目标。这是您在另一个项目中支持和重用库所需的全部内容(除非您将外部资源拖到图片中,这会变得很麻烦)。
  • 没有全局状态(例如单身,全局变量)。
  • 准确了解多线程上下文中的支持(更常见的是,并发性应由客户负责)。
  • 记录您的公共界面(也许是您的私人界面......)。
  • 定义精确且统一的错误模型。
  • 您永远不会有足够的错误检测。
  • 设置非常高的标准 - 构建它们以作为参考实现重用。
  • 尽早确定库的粒度。这些应该非常小而且重点突出。
  • 考虑为后端/核心库使用C或C ++实现(可以剥离这些东西)。
  • 确定并指定库的objc类和类别的任何前缀。也使用好的前缀。
  • 最大限度地减少可见的依赖关系(例如,不要#import吨可隐藏的框架。
  • 请确保在没有客户端需要添加其他#import的情况下进行编译。
  • 不要依赖客户将物品放在特定的地方,或者资源具有特定的名称。
  • 对内存消耗和执行成本保守。
  • 没有泄漏。
  • 没有僵尸。
  • 主线程没有慢速阻塞操作。
  • 在经过充分测试之前不要发布内容,并且已经稳定了一段时间。错误打破了客户的代码,如果它不断破坏他们的程序,他们就不太可能重用你的库。
  • 学习,使用和学习好的库。
  • 询问某人(理想情况下,谁比你更有经验)来审核你的代码。
  • 在项目中的适当位置使用/练习库。
  • 在添加功能之前修复错误。

不要让这吓到你 - 它真的很有趣,你可以在这个过程中学到很多东西。

答案 1 :(得分:4)

您可以通过多种方式重复使用代码:

  • 将代码存储在公共目录中,并在项目中包含该目录。很简单,但可能有版本问题。
  • 创建一个单独的项目,构建一个静态iOS库,然后创建一个框架。设置更复杂,因为它涉及脚本来构建框架目录结构。但是在其他项目中易于使用,可以处理版本控制和设备/模拟器组合库。
  • 创建一个单独的项目,用于构建静态iOS库,然后将其作为子项目包含在其他项目中。避免必须构建框架,结果可以更加优化。

这是基本的3,当然有很多变化,以及你如何去做。你决定做的很多事情都将归结为你要为此做的人。例如,我喜欢我自己的代码的子项目,但对于我希望为其他人提供的代码,我认为框架更好。即使他们更多的工作要创造。此外,我可以使用api文档的docset将它们包装起来,并将整个批量作为DMG上传到github供其他人下载。