2014-03-06 119 views
1

我有我想要的更新它的應用程序。如何檢查,如果應用程序已經安裝

我有一個應用程序中的項目列表,但現在我想爲這個項目添加版本,所以當項目將被更新時,它將被標記爲已更新。或者如果我將添加一個新的項目,它將被標記爲新的

但現在對於安裝應用程序第一次所有的項目應該是新的,並且已經對自己的設備應用中的所有項目應該沒有任何標記intially用戶新用戶。 我沒有任何用戶默認現在在應用程序,所以我不能檢查一些價值。

我如何檢查是否應用程序已經在設備上安裝?

+0

你有沒有CoreData或SQLite?你可以檢查你是否有任何信息保存。 –

+0

不,我沒有,我從我的服務器api收到的所有項目 – Sergey92zp

回答

0

答案是:你無法知道它如果沒有存儲,將幫助您檢查用戶是否更新應用程序或從頭開始安裝它的任何信息。

您可以使用此代碼來了解它,從你會實現它的版本開始。

BOOL versionUpgraded; 
NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"]; 
NSString *previousVersion = [prefs stringForKey:@"appVersion"]; 

if ([[NSUserDefaults standardUserDefaults] stringForKey:@"appVersion"] != nil) 
{ 
    // See if version is the same as the previous one. If NOT, it is an Update. 
    versionUpgraded = !([previousVersion isEqualToString: version]); 
} 
// No "appVersion" means new install. 
else 
{ 
    versionUpgraded = YES; 
} 

if (versionUpgraded) 
{ 
    [[NSUserDefaults standardUserDefaults] setObject:version 
               forKey:@"appVersion"]; 
    [[NSUserDefaults standardUserDefaults] setObject:previousVersion   
               forKey:@"prevAppVersion"]; 
    [[NSUserDefaults standardUserDefaults] synchronize]; 
} 

什麼你也可以做的是檢查是否有您緩存任何數據,存儲等什麼在NSUserDefaults,或任何類型的數據庫,或者Documents文件夾,這將意味着應用程序已經安裝

+0

我不知道我可以將它添加到下一個版本。但現在我試圖添加它沒有nsusedefaults。不管怎麼說,還是要謝謝你。 – Sergey92zp

+0

你是否在NSUserDefaults或任何類型的數據庫或Documents文件夾中存儲任何東西? – RaffAl

+0

感謝@reecon,我記得我爲圖像製作緩存 – Sergey92zp

相關問題