如何将此Swift行转换为Objective-C语法

时间:2016-04-11 16:09:03

标签: objective-c swift

需要将其转换为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

1 个答案:

答案 0 :(得分:0)

你需要:

- (NSDateComponents *) componentsFromDate: (NSDate *) fromDate {
    return [[NSCalendar currentCalendar] components:[NSDate componentFlags] fromDate:fromDate];
}

NSCalendar中方法的名称为components:fromDate:

您作为类别方法添加到componentsFlags的{​​{1}}方法需要是类方法,而不是实例方法。在类别的.h和.m中,将NSDate更改为-。返回类型必须为+,而不是NSCalendarUnit。并且您需要使用按位OR将所有标志连接在一起。

NSCalendarUnit *