2017-09-01 12 views
1

アプリを5回開いた後にポップアップを表示するには、いくつかの問題があります。私はこれを達成するためにNSUserDefaultsとapplicationDidFinishLaunchingを使用しています。しかし、私はそれを働かせるように見えることはできません。 HERESに私のコード:アプリを開いた後に警告を表示する5回

func applicationDidFinishLaunching(_ application: UIApplication) { 
    let currentCount = UserDefaults.standard.integer(forKey: "lanuchCount") 
    UserDefaults.standard.set(currentCount + 1, forKey: "lanuchCount") 
    UserDefaults.standard.synchronize() 

    if currentCount == 3 { 
     print("Opened") 
    } 
} 

私が知っている私の文は正しくありませんが、それは量を追跡し、メッセージを表示する方法についての私の唯一の推測だ場合。私は3回開いた後でコンソールに表示するために印刷メッセージを取得することさえできるかどうかを知りたいので、警告がありません。

EDIT:私のコードをいくつかの返事が何をするかに変更しました。それでも動作する運はまだありません。

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
    // Override point for customization after application launch. 
    let currentCount = UserDefaults.standard.integer(forKey: "launchCount") 
    UserDefaults.standard.set(currentCount + 1, forKey: "launchCount") 
    UserDefaults.standard.synchronize() 
     if (currentCount + 1) == 3 { 
      print("opened") 
      let alert = UIAlertView() 
      alert.title = "Test" 
      alert.message = "Test" 
      alert.addButton(withTitle: "Okay") 
      alert.show() 
    } 
    return true 
} 
+0

がどのように機能していないのに役立ちます。この

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. let currentCount = UserDefaults.standard.integer(forKey: "lanuchCount") UserDefaults.standard.set(currentCount + 1, forKey: "lanuchCount") UserDefaults.standard.synchronize() if (currentCount + 1) == 3 { print("Opened") } return true } 

希望のようなものを使用する必要があり、引き金になるだろうか? 'currentCount'の値が実際に何に設定されているかを見るために、これらの行のいずれかにブレークポイントを置こうとしましたか? –

+0

'synchronize'を呼び出す必要はありませんが、そうでなければコードは正常です。ただし、これは毎回アプリを完全に起動する必要があることに注意してください。これは、ユーザーが一時的にあなたのアプリを離れて戻る時間を数えません。 – rmaddy

+0

@rmaddy大丈夫私は同期を取り除きました、私はiPhoneで警告を出してアプリを置いた。それを開いてそれを完全に閉じ、それを数回と何も繰り返さなかった。 – Dexter

答えて

0

didFinishLaunchingWithOptionsを代わりに使用してください。 その後、最初のviewcontrollerのviewDidLoadを設定して、必要な警告を表示することができます。

0

コードは問題なく機能するはずですが、知っておくべきことが少しあります。 UserDefaultsに保存された最後の状態で作業しています。つまり、UserDefaultsの値が0だったときに初めてアプリケーションを開くと、UserDefaultsに追加した+1ではなく、アプリの再起動後にifステートメントでその値を使用しています4回のif文を使用すると、3時間後に結果を見たい場合は、これが

+0

助けてくれてありがとう!しかし残念ながら、それはまだ動作していません。問題が何であるか分かりません。 – Dexter

+0

私はあなたの新しいコードをテストし、それは私のためにうまく動作しています、それは "オープン"と3回目の後に警告を表示する印刷されました。もう1つのことは、UIAlertView()はios 9以降では非推奨です – Arashk

関連する問題