우리는 NSUserdefaults를 사용하여 응용 프로그램의 첫 번째 실행을 감지 할 수 있습니다. 하지만 매일 iOS에서 첫 번째 출시를 감지 할 수있는 방법이 있습니까? 한 번에 하나씩 팝업을 표시해야합니다.iOS에서 처음으로 첫 번째 출시를 감지하는 방법은 무엇입니까?
AppDelegate에 발사에서
1
A
답변
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
}
}
지금까지 시도한 것을 보시려면 코드를 보여주십시오. –