swift - 每天激活一个查看周数的功能

标签 swift nsdate

我想制作一个日程应用。为此,我需要每周分开,因为时间表不同(例如:第 1 周是 A 周,第 2 周是 B 周,第 3 周是 A 周)。

我需要创建一个每天运行的函数来确定今天是哪一周。我对函数的外观有一个抽象的想法,只是我不知道将什么传递给函数,以及如何在用户不做任何事情的情况下每天运行这个函数。 这是我的一些想法。

func DetermineIfWeekA(n:IntMax;something )-> Bool{
for k in 0...n{
    if (DayDifference == 14*k+3,14*k+4,14*k+5,14*k+6,14*k+7){
        return true
    }else if(DayDifference == 14*k+10,14*k+11,14*k+12,14*k+13,14*k+14){
        return false
    }
 }
}

最佳答案

我没有一个完美的答案给你,但根据你所说的,我有以下想法。

关于您想要的日期功能。

  • 创建一个 NSDate() 实例,它将为您提供当前日期,您可能必须使用 NSDateFormatter 格式化您的日期所以它更容易使用。另请查看 NSDateComponents , 他们有一个 .weekNumber 属性。

  • 然后您需要将该周数与某种存储的周数或 switch 语句进行匹配。

  • 您的函数不一定需要接受任何参数,只需创建一个新的 NSDate。

  • 如果您将问题更新为更具体和清晰,我也许可以提供更好的解决方案和一些代码。

关于检查“无需用户做任何事情”。

如果您想在用户不执行任何操作(例如甚至打开您的应用程序)的情况下运行该功能。您可能希望通过执行后台提取来完成此操作。大部分工作将在 AppDelegate 中完成。

在您的 AppDelegates didFinishLaunchingWithOptions 方法中,您需要设置 MinimumBackgroundFetchInterval。

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

        // background fetch
        UIApplication.sharedApplication().setMinimumBackgroundFetchInterval(
            UIApplicationBackgroundFetchIntervalMinimum)
}

然后您需要将以下方法添加到您的 AppDelegate,其中将包含您需要执行的代码。

func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
      //... run task once complete call {
           completionHandler(.NewData)
      // }

    }

Ray Wenderlich 有一个关于后台获取的很棒的教程:

http://www.raywenderlich.com/92428/background-modes-ios-swift-tutorial

关于swift - 每天激活一个查看周数的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34562280/

相关文章:

ios - Objective-C 中的开放时间 - 两次 NSDate 之间的时间

ios - 使用UTC-5时区格式化程序将NSString转换为NSDate

ios - 如何延迟方法/动画?

ios - 如何在应用程序委托(delegate)之外注册本地通知?

swift - 如何循环CollectionViewCell

保存在 Core Data 中的 iOS 数据无法在发布后继续存在

xcode - podspec swift - 左侧紫色图标

php - NSDate 到 MySQL 日期

swift - DateString 到 timeStamp 用于在 Swift 中排序

ios - Swift 3 Firebase - (setValue :) Cannot store object of type _SwiftValue at content