2013-01-07 122 views
0

我遇到從自定義plist讀取問題。我找到了Apple的文檔,並在這裏和其他地方發佈了很多帖子,但是我不明白我做錯了什麼。iPhone - Xcode無法找到plist,或plist讀取不正確

我的plist是一個有兩個字符串(網址)的字典。

這裏是我的代碼,就像蘋果和其他網站:

- (void)accessPlistForURLDictionary 
{ 
    NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsPath = [paths objectAtIndex:0]; 
    NSString *plistPath = [documentsPath stringByAppendingPathComponent:@"server_urls.plist"]; 

    if (![[NSFileManager defaultManager] fileExistsAtPath:plistPath]) 
    { 
     // if not in documents, get property list from main bundle 
     plistPath = [[NSBundle mainBundle] pathForResource:@"server_urls" ofType:@"plist"]; 
     NSLog(@"bundle"); 
    } 

    NSData *xml = [[NSFileManager defaultManager] contentsAtPath:plistPath]; 
    NSString *error = nil; 
    NSPropertyListFormat format; 
    // convert static property liost into dictionary object 
    NSDictionary *plistDictionary = (NSDictionary *)[NSPropertyListSerialization propertyListFromData:xml mutabilityOption:NSPropertyListMutableContainersAndLeaves format:&format errorDescription:&error]; 
    if (!plistDictionary) 
    { 
     NSLog(@"Error reading plist: %@, format: %d", error, format); 
    } 

    serverURL = [[plistDictionary objectForKey:@"Root"] objectForKey:@"get_firstview"]; 
    NSLog(@"serverURL in accessPlist is: %@", serverURL); 
} 

這裏是日誌....我不知道爲什麼的serverURL(即合成一個字符串變量)是「空「

2013-01-07 12:47:06.742 ME[2305:c07] bundle 
2013-01-07 12:47:06.744 ME[2305:c07] serverURL in accessPlist is: (null) 
2013-01-07 12:47:06.744 ME[2305:c07] serverURL is: (null) 

之前,我使用的serverURL在viewDidLoad中

我的plist中在構建設置添加的最後一次檢查完成(我認爲)。它必須是我的代碼的問題,但我找不到。

回答

0

有加載plist更容易進入NSDictionary

NSMutableDictionary *plistDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile: plistPath]; 

嘗試。

+0

謝謝!我以爲在我所有的嘗試之前我都曾嘗試過,但出於某種原因,這很有效。這麼容易,我感到羞怯。 – Siriss