需要将其转换为 Objective-C 语法,似乎找不到转换它的方法。
private class func components(fromDate fromDate: NSDate) -> NSDateComponents! {
return NSCalendar.currentCalendar().components(NSDate.componentFlags(), fromDate: fromDate)
}
试过这个:
- (NSDateComponents *) componentsFromDate: (NSDate *) fromDate {
return [[NSCalendar currentCalendar] componentsFromDate: [NSDate componentFlags] : fromDate];
}
这是之前定义的:
- (NSCalendarUnit *) componentFlags {
return NSCalendarUnitYear, NSCalendarUnitMonth, NSCalendarUnitDay, NSCalendarUnitWeekOfYear, NSCalendarUnitHour, NSCalendarUnitMinute, NSCalendarUnitSecond, NSCalendarUnitWeekday, NSCalendarUnitWeekdayOrdinal, NSCalendarUnitWeekOfYear;
}
所有这些都在我创建的类别中:
@implementation NSDate (AFDateHelperObjC)
@end
最佳答案
你需要:
- (NSDateComponents *) componentsFromDate: (NSDate *) fromDate {
return [[NSCalendar currentCalendar] components:[NSDate componentFlags] fromDate:fromDate];
}
NSCalendar
中方法的名称是components:fromDate:
。
作为类别方法添加到 NSDate
的 componentsFlags
方法需要是类方法,而不是实例方法。在类别的.h 和.m 中,将-
更改为+
。并且返回类型需要是 NSCalendarUnit
,而不是 NSCalendarUnit *
。您需要使用按位或将所有标志连接在一起。
+ (NSCalendarUnit) componentFlags {
return NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitWeekOfYear | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond | NSCalendarUnitWeekday | NSCalendarUnitWeekdayOrdinal | NSCalendarUnitWeekOfYear;
}
关于objective-c - 如何将此 Swift 行转换为 Objective-C 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36553872/