2016-11-29 4 views
-2

どこを見るか、システムを作成するために必要なものがわかりません。ユーザーがアプリケーションで実行できるオブジェクトに対するアクションがあります。ユーザーがオブジェクトに対してその操作を実行すると、そのオブジェクトに対して24時間のカウントダウンが開始されます。オブジェクトに対してアクションを実行してから24時間が経過したときに、ユーザーに通知する必要があります。 NSTimerは私がここに必要なものですか?ユーザーがアプリの終了やアプリのログアウトを行ったり、ユーザーがタイマーを起動したビューコントローラーから移動したりしても、タイマーが実行されているはずなので、私は本当にそうは思わない。私は実際にそれがデータベースで動く何かであるべきだと思います。 24カウントダウンのようなものか?私はどのように私は実行中のタイマーを持っているのか分からない。24時間が経過したときにユーザーに通知する24時間タイマーを開始する

私はチェックシステムを考えました。オブジェクトのように、コアデータのタイムスタンプとWebサーバーのデータベースを持ち、ユーザーが24時間カウントダウンを開始した後にオブジェクトと対話するたびに、時間をチェックします。しかし、ユーザーが別のアプリを使用している場合、そのシステムで24時間稼働していれば、どのように通知されますか?

+2

24時間が経過したことをユーザに通知するためにローカル通知を設定することができます – spassas

+0

[ローカルのリモート通知プログラミングガイド](https://developer.apple.com/library/content)のローカル通知のディスカッションを参照してください。/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG /)を参照してください。 – Rob

答えて

1

説明している機能はサーバー側にある必要があります。 24時間の期間内にアプリが稼動することは確実ではありません。ユーザーにどのように通知するかは、達成したいことによって異なります。私はあなたが望むものを達成するためにサーバー側とPush Notificationsを使用することを提案します。

+0

*「あなたのアプリが起動していることを確信することはできません...」*また、OPはインストールされている*デバイス*が特定されていることさえできません。そうでない場合は、電子メール(最低公約数)でも使用できない可能性があります。 –

1

アプリでローカル通知を使用できます。

//first you must register to get notification. 
    let notificationSettings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil) 
    UIApplication.sharedApplication().registerUserNotificationSettings(notificationSettings) 


    @IBAction func NotifyUser(sender: AnyObject) { 
      let notify = UILocalNotification() 
      notify.fireDate = NSDate(timeIntervalSinceNow: 24*60*60) as Date 
      notify.alertBody = "Alert message body" 
      notify.alertAction = "Alert message action" 
      notify.soundName = UILocalNotificationDefaultSoundName 
      notify.userInfo = ["Hello": "Hi"] 
      UIApplication.sharedApplication.scheduleLocalNotification(notify) 
      guard let settings = UIApplication.sharedApplication().currentUserNotificationSettings() else { return } 

      if settings.types == .None { 
      // here we have not permission to schedule notifications, or we haven't asked yet. 
       return 
      } 
     } 

希望すると助かります。

関連する問題