我知道NSUserDefaults
保存/恢復用戶偏好。 應用程序的等效等級是多少?例如,應用程序可能有一個「上次運行」字段;或者它可能有一個用於在應用程序級別使用的設備的唯一標識的字段。在iOS上保存(私人)應用程序設置?
我的意圖是將應用程序的設置(不是用戶設置)保存在設置應用程序中,而不是在iTunes,Time Machine,{whatever}中備份這些設置。
我對Java和C#收到了很多噪音,但對於iOS/iPhone/iPad來說並不多。
我知道NSUserDefaults
保存/恢復用戶偏好。 應用程序的等效等級是多少?例如,應用程序可能有一個「上次運行」字段;或者它可能有一個用於在應用程序級別使用的設備的唯一標識的字段。在iOS上保存(私人)應用程序設置?
我的意圖是將應用程序的設置(不是用戶設置)保存在設置應用程序中,而不是在iTunes,Time Machine,{whatever}中備份這些設置。
我對Java和C#收到了很多噪音,但對於iOS/iPhone/iPad來說並不多。
如果您可以通過NSUserDefaults存儲值,那麼也可以存儲應用程序首選項。
或您的項目添加settings.plist和閱讀(什麼你是不是後續變化)
,你可以使用像,
+ (NSDictionary*)getBundlePlist:(NSString *)plistName
{
NSString *errorDesc = nil;
NSPropertyListFormat format;
NSString *plistPath = [[NSBundle mainBundle] pathForResource:plistName ofType:@"plist"];
NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:plistPath];
NSDictionary *temp = (NSDictionary *)[NSPropertyListSerialization
propertyListFromData:plistXML
mutabilityOption:NSPropertyListMutableContainersAndLeaves
format:&format errorDescription:&errorDesc];
return temp;
}
+ (id) getPropValue:(NSString *)PropertyName
{ // I am supposing you had add your app preferences on settings.plist.
return [[Property getBundlePlist:@"settings"] objectForKey:PropertyName];
//here Property is my class name, then you can use value by
//NSString *value = [Property getPropValue:@"setting1"];
}
或者您可以將所有內容放入數組或字典中,並調用'writeToFile:' – Greg
,這很好,因爲我瞭解您的解決方案,它將在應用程序執行後保存。嗯,我告訴他在IDE中添加plist文件的值。 –
NSUserDefaults
可用於您要求的內容。
if (![[NSUserDefaults standardUserDefaults] boolForKey:@"shownPrompt"]) {
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"shownPrompt"];
// Show your prompt or whatever
}
這是一個工作代碼片段。如果密鑰爲假,則將其設置爲true並顯示提示。該代碼下次運行時,密鑰已經爲true,因此不會顯示提示。
NSUserDefaults
是特定於當前設備上的當前應用程序,類似於在一個NSMutableDictionary
這是一個關鍵的價值體系,與替代實例你自己,還有你的整個應用程序的通用共享實例的區別,當應用程序退出時不會被擦除。
NSUserDefaults
是完美的保存之類的東西是否已經顯示出,上次運行等日期在這裏閱讀文檔:https://developer.apple.com/documentation/foundation/userdefaults
不要被「用戶偏好」的一部分被推遲。你可以用它來保存任何你想要的(只要它是或可轉換爲NSObject
它實現<NSCoding>
,這基本上意味着NSString
,NSDictionary
,NSArray
,NSNumber
,UITextField
,int
,float
,bool
等)。
只是爲了澄清,你放在NSUserDefaults
的東西將而不是,在任何情況下,自動調整在設置應用程序。它將保持完全私密和隱藏。要在「設置」中顯示某些內容,您需要嚮應用添加「設置」捆綁包,然後爲您希望在「設置」應用中顯示的每個值手動添加密鑰。
iPhone是一個用戶操作系統。您無法使用其他用戶名登錄。那麼爲什麼你需要應用程序設置,與用戶設置不同呢?或者我錯過了什麼? – bartvdpoel