gpt4 book ai didi

cocoa - Cocoa Framework 版本号有哪些限制?

转载 作者:行者123 更新时间:2023-12-03 16:30:07 26 4
gpt4 key购买 nike

我们正在分发定期更新的 Cocoa 框架。我们将更新每个版本的版本号。苹果文档似乎建议版本号应该是连续递增的整数。我们以多种格式分发输出,该框架只是其中之一。我们不想只为我们的框架维护一个单独的编号系统。

我们并不真正关心框架版本号的精确格式,只要它们随着产品的变化而变化,并且以正确、合理和预期的方式表现即可。我正在寻找一种避免运行单独的版本号计数器的方法。

一个建议是,对于产品版本 12.34.56,我们可以简单地删除点并说框架版本为 123456(使用适当的零填充)。

  • 可表示的数字类型是否有限制(uint?long?)
  • 必须是数字吗?可以是字符串吗?
  • 数字必须连续吗?
  • 在这种情况下有标准的处理方法吗?

最佳答案

据我了解,此要求的原因是为了让您可以进行宏检查,例如:

#if FRAMEWORKNAME_VERSION >= 123456
// some stuff
#else
// some other stuff
#endif

数字不需要连续,您建议的方案非常合理:

#define MAKE_VERSION(MAJOR,MINOR,PATCH) ((MAJOR*10000)+(MINOR*100)+PATCH)

我还建议除了定义版本之外,还为每个版本定义常量...

#define FRAMEWORKNAME_VERSION_1_0_0 MAKE_VERSION(1,0,0)
#define FRAMEWORKNAME_VERSION_1_0_1 MAKE_VERSION(1,0,1)

这样,您就可以通过多种方式进行检查......或者:

#if FRAMEWORKNAME_VERSION >= MAKE_VERSION(1,0,1)
// 1.0.1 and later
#else
// Before 1.0.1
#endif

或者:

#if defined(FRAMEWORKNAME_VERSION_1_0_1)
// 1.0.1 and later
#else
// Before 1.0.1
#endif

您应该满足的关键要求是:

  • 数字单调递增
  • 数字是可以预测的
  • 这些数字很容易比较

如果除了整数表示之外,您还想提供版本的字符串表示,请务必继续;但是,我强烈建议您使用可用的整数表示形式,因为它可以简化比较并允许在预处理器中检查版本。

关于cocoa - Cocoa Framework 版本号有哪些限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2744027/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com