2016-08-10 13 views
1

私たちはNSUserdefaultsを使用してアプリケーションの最初の起動を検出できます。しかし、iOSの最初の初回起動を検出する方法はありますか?一度に1つずつポップアップを表示する必要があります。iOSで毎日最初の起動を検出するにはどうすればよいですか?

appDelegateの打ち上げで
+0

これまでに試したことを確認するコードを表示してください。 –

答えて

2

は君たちをありがとう!簡単な解決策を得ました。サポートに感謝します

let today = NSDate().formattedAsDay 
    if (NSUserDefaults.standardUserDefaults().stringForKey(Constants.FIRSTLAUNCH) == today) 
    { 
     //Already Launched today 
    } 
    else 
    { 
     //Today First Launch 
     NSUserDefaults.standardUserDefaults().setValue(today, forKey:Constants.FIRSTLAUNCH) 
    } 

extension NSDate { 
var formatted: String { 
    let formatter = NSDateFormatter() 
    formatter.dateFormat = "MM/dd/yyyy" 
    return formatter.stringFromDate(self) 
} 
0

それはuserdefaultsまたはタイムスタンプがある場合はどこか、そしてちょうど今日はそれが古いタイムスタンプを交換し、ポップアップに

1
を示している場合、タイムスタンプからこの日付と異なる日付かどうかを確認するには、タイムスタンプの保存最初の打ち上げがあります applicationDidFinishLaunchingWithOptions

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
    // get the time the app last launched 
    let lastLaunch = NSUserDefaults.standardUserDefaults().doubleForKey("lastLaunch") 
    let lastLaunchDate = NSDate(timeIntervalSince1970: lastLaunch) 
    // check to see if lastLaunchDate is today. 
    let lastLaunchIsToday = NSCalendar.currentCalendar().isDateInToday(lastLaunchDate) 

    if !lastLaunchIsToday { 
     // do your stuff, show a popup or whatever 
    } 
    // update the last launch value 
    NSUserDefaults.setDouble(NSDate().timeIntervalSince1970(), forKey: "lastLaunch") 
    return true 
} 
0

私はそれはあなたを助けることができる願っています:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
     let timestamp = NSUserDefaults.standardUserDefaults().doubleForKey(forKey: "lastLaunch") 

     if !NSDate.init(timeIntervalSinceNow: timestamp).isToday() { 
      // Show popup 
      NSUserDefaults.standardUserDefaults().setDouble(NSDate().timeIntervalSince1970, forKey: "lastLaunch") 
      NSUserDefaults.standardUserDefaults().synchronize() 
     } 

     return false 
} 

extension NSDate { 
    func isToday() -> Bool { 
     let today = NSDate() 
     self.compare(today) 
     let todayCalendar: NSDateComponents = NSCalendar.currentCalendar().components([.Era, .Year, .Month, .Day], fromDate: today) 
     let selfCalendar: NSDateComponents = NSCalendar.currentCalendar().components([.Era, .Year, .Month, .Day], fromDate: self) 

     return todayCalendar.day == selfCalendar.day && todayCalendar.month == selfCalendar.month && todayCalendar.year == selfCalendar.year && todayCalendar.era == selfCalendar.era 
    } 
} 
関連する問題