簡體   English   中英

iOS能夠在模擬器上讀取plist文件,但無法在設備上讀取

[英]iOS able to read plist file on simulator but not on device

以前,我閱讀過具有相同問題的帖子,但問題仍然存在。 我的應用程序需要首先讀取plist文件以獲取一些參數,並且在設備上加載后無法讀取默認設置plist(在模擬器上工作)。 一種解決方法是將該plist復制到文件目錄中,但是僅此一種? 設備是否無法讀取plist中設置的用戶默認設置? 如果我將其復制到docs目錄,如果設備具有其他位置,設備將能夠關聯plist的密鑰嗎? 在執行任何功能之前,我需要閱讀用戶默認設置。 謝謝。

-(void)loadSettings
{    
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    self.userID = [[NSUserDefaults standardUserDefaults] stringForKey:@"userID"];

    self.nom2 = [[NSUserDefaults standardUserDefaults] stringForKey:@"t2"];
    self.nom3 = [[NSUserDefaults standardUserDefaults] stringForKey:@"t3"];
    self.nom4 = [[NSUserDefaults standardUserDefaults] stringForKey:@"t4"];

    self.currentGlobal = [[NSUserDefaults standardUserDefaults] stringForKey:@"versionApp"];
    NSLog(@"Version App = %@", currentGlobal);


    self.colorTab = [[NSUserDefaults standardUserDefaults] stringForKey:@"color"];

    firstBoot = [[NSUserDefaults standardUserDefaults] boolForKey:@"firstBoot"];

    [defaults synchronize];

}

聽起來您只是想在用戶默認值中設置一些初始值,以便您的應用可以讀取它們。如果是這種情況,那么您只需要使用NSUserDefaultsregisterDefaults:方法。 例:

[[NSUserDefaults standardUserDefaults] registerDefaults:
    [NSDictionary dictionaryWithObject: [NSNumber numberWithBool:YES] 
                                forKey: @"firstBoot"]];

NSUserDefaults在於,您永遠不必弄亂pList內容或iOS文件系統。

您是否看過使用NSUserDefaults?

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html

它會自動執行您正在描述的內容,並且不需要管理文件。 這是一個簡單的API,您可以讀取和寫入設置,而iOS會為您負責存儲。

您無需將standardUserDefaults的plist復制到documents目錄。 您應該讓iOS自行創建此文件,而不應將其包含在您的應用中。 如果需要設置默認值,則應通過傳入鍵值對字典來在standardUserDefaults實例上使用registerDefaults:方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM