亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

檢測首次啟動iOS應用程序的時間?

檢測首次啟動iOS應用程序的時間?

iOS
斯蒂芬大帝 2019-10-05 14:45:13
如何檢測首次啟動iOS應用的時間?
查看完整描述

3 回答

?
森林海

TA貢獻2011條經驗 獲得超2個贊

Marc和Chris所說的差不多,盡管我更喜歡在應用程序退出時更改其值,以防應用程序有多個領域需要了解它。在代碼中:


目標C


// -applicationDidFinishLaunching:

[[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES],@"firstLaunch",nil]];

// to check it:

[[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"];

// -applicationWillTerminate:

[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"firstLaunch"];

斯威夫特5.0


// -applicationDidFinishLaunching:

UserDefaults.standard.register(defaults: ["firstLaunch":true])

// to check it:

UserDefaults.standard.bool(forKey: "firstLaunch")

// -applicationWillTerminate:

UserDefaults.standard.set(false, forKey: "firstLaunch")


查看完整回答
反對 回復 2019-10-05
?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

我意識到這個問題已經很老了,但是我用它提出了一種檢測“全新安裝”后首次啟動的方法(相對于升級/降級之后的首次啟動),并認為我將在此處共享代碼將來的觀眾,以防萬一。


// Get current version ("Bundle Version") from the default Info.plist file

NSString *currentVersion = (NSString*)[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];

NSArray *prevStartupVersions = [[NSUserDefaults standardUserDefaults] arrayForKey:@"prevStartupVersions"];

if (prevStartupVersions == nil) 

{

    // Starting up for first time with NO pre-existing installs (e.g., fresh 

    // install of some version)

    [self firstStartAfterFreshInstall];

    [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:currentVersion] forKey:@"prevStartupVersions"];

}

else

{

    if (![prevStartupVersions containsObject:currentVersion]) 

    {

        // Starting up for first time with this version of the app. This

        // means a different version of the app was alread installed once 

        // and started.

        [self firstStartAfterUpgradeDowngrade];

        NSMutableArray *updatedPrevStartVersions = [NSMutableArray arrayWithArray:prevStartupVersions];

        [updatedPrevStartVersions addObject:currentVersion];

        [[NSUserDefaults standardUserDefaults] setObject:updatedPrevStartVersions forKey:@"prevStartupVersions"];

    }

}


// Save changes to disk

[[NSUserDefaults standardUserDefaults] synchronize];


查看完整回答
反對 回復 2019-10-05
?
MYYA

TA貢獻1868條經驗 獲得超4個贊

這是一個非常簡單的快捷方式,但是我發現第一次運行應用程序時,NSUserDefault鍵值對始終為NULL,因此


// Check to see if its the first time

if ([[NSUserDefaults standardUserDefaults] valueForKey:@"firstTime"] == NULL) {

   [[NSUserDefaults standardUserDefaults] setValue:@"Not" forKey:@"firstTime"];

}

并將此代碼放置在應用程序啟動時顯示的視圖控制器的awakeFromNib中。我不知道是否有其他答案可以解決您的問題,但這就是我解決問題的方法。


查看完整回答
反對 回復 2019-10-05
  • 3 回答
  • 0 關注
  • 666 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號