我想快速实现 DDate(Discordian Date——Hail Eris!)日历,我想知道是否有办法扩展 Calendar.Identifer
枚举以包含新日历?
我可以用下面的代码扩展 NSCalendar.Identifier
,但是似乎没有办法对 Calendar.Identifier
做同样的事情:
extension NSCalendar.Identifier {
static let discordian = NSCalendar.Identifier(rawValue: "Discordian")
}
NSCalendar 桥接到 Calendar,但是当我尝试使用 Calendar(identifier: Calendar.Identifier)
init 方法实例化一个新的 Calendar 对象时,新标识符没有出现在标识符列表中.有办法做到这一点吗?
最佳答案
Swift 中的 Calendar
类型由 NSCalendar
支持,即 Toll-Free Bridged往返CFCalendar
.
CFCalendar
的文档中明确指出:
There is currently no API for defining your own calendars.
Swift Calendar
也不提供此类 API。
即使 Calendar
有这样的 API,您的自定义日历也无法只提供其标识符。
您需要实现为您自己的新标识符定制的 Calendar
的许多功能,并将实现绑定(bind)到标识符。
同样,Calendar
、NSCalendar
和 CFCalendar
中都没有这样的 API。
所以,没办法,你不能那样做。
关于swift - 是否可以扩展 Calendar.Identifier 来创建自定义日历?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52500727/