gpt4 book ai didi

objective-c - 如何将 .hour() 和 .min() 从 Swift 转换为 Objective-C?

转载 作者:行者123 更新时间:2023-11-30 13:30:24 25 4
gpt4 key购买 nike

如何将 .min() 和 .hour() 转换为 Objective-C ?

func nearestHour () -> Int {
let halfHour = NSDate.minuteInSeconds() * 30
var interval = self.timeIntervalSinceReferenceDate
if self.seconds() < 30 {
interval -= halfHour
} else {
interval += halfHour
}
let date = NSDate(timeIntervalSinceReferenceDate: interval)
return date.hour()
}

我试过这个:

- (int) nearestHour {
NSInteger halfHour = [NSDate minuteInSeconds].intValue * 30;
NSTimeInterval interval = [self timeIntervalSinceReferenceDate];
if ([self seconds] < 30) {
interval -= halfHour;
}
else {
interval += halfHour;
}
NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate: interval];
return [date hour];
}

我在这些行中收到以下错误:

if ([self seconds] < 30) {

NSDate 没有可见的 @interface 声明选择器秒。

return [date hour];

NSDate 没有可见的 @interface 声明选择器小时。

最佳答案

正如前面提到的,NSDate 没有您需要的界面。您需要将其分解为日历界面。然后您可以单独设置小时/分钟/秒等或获取它们或您需要执行的任何操作。

NSDateComponents *components = [[NSCalendar currentCalendar] components:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:self];

if ([components seconds] < 30) {

举个例子:

- (int) nearestHour {
NSDateComponents *components = [[NSCalendar currentCalendar] components:(NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) fromDate:self];
NSInteger halfHour = [NSDate minuteInSeconds].intValue * 30;
NSTimeInterval interval = [self timeIntervalSinceReferenceDate];
if ([components minutes] < 30) {
interval -= halfHour;
}
else {
interval += halfHour;
}
NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate: interval];
return [date hour];
}

SO 和 google 上有很多示例:How do I get the current hour using Cocoa?

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/DatesAndTimes/DatesAndTimes.html#//apple%5Fref/doc/uid/10000039

关于objective-c - 如何将 .hour() 和 .min() 从 Swift 转换为 Objective-C?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36627621/

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