【问题标题】:Enumeration missing from Cocoa Touch Calendaring classes?可可触摸日历类中缺少枚举?
【发布时间】:2015-04-29 00:44:02
【问题描述】:

在使用 NSCalendarNSDateNSDateComponents 几个小时后,我突然想到 Apple 没有为工作日创建枚举。

显然,从框架来看,全世界都在使用每周 7 天的方法来表示工作日。这些工作日的名称在含义上是通用的,例如,将星期日翻译成匈牙利语是一个不同的词( Vasarnap)但它意味着星期天。我会说匈牙利语 + 除了英语之外的其他 4 种语言,所以我肯定知道。

如果我们提取NSCalendarUnitWeekDay组件,我们可以很快发现它返回了NSInteger,并且星期日用1表示,星期一是2,等等。

扩展NSCalendar 来提供这样的枚举非常容易,而且我实际上已经这样做了,到目前为止它被证明是实用的。 但我想知道也许我遗漏了一些东西,并且有理由省略这样的枚举。

有吗?

【问题讨论】:

  • 为什么需要枚举?一周的第一天有什么不同?像犹太历这样一天从日落开始的日历怎么样?从概念上讲,日历不需要有 7 天的周。我曾想过创建一个 14 天的周历来设置每两周一次的提醒。只是一些想法....
  • 因为当您检查 NSDateComponents.weekday 属性时,它返回一个整数,而您不知道该数字的含义。 firstDayOfTheWeek 属性也是如此。

标签: ios objective-c cocoa-touch nscalendar


【解决方案1】:

没有。看起来确实很奇怪,但我能想到的不包含枚举的唯一原因是,由于本地化,1、2、3 等的“含义”会发生变化,并且通过为公历定义枚举,这将导致一个隐含的假设,即 Sunday=1,更正某些日历。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-27
    • 2013-11-18
    • 1970-01-01
    • 2015-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多