0

カスタムplistからの読み取りに問題があります。私はAppleのドキュメントを見つけ、ここや他の場所に多くの投稿を見つけましたが、私が間違っていることを理解できません。

私のplistは、2つの文字列(URL)を持つ辞書です。

これがAppleや他のサイトと同じような私のコードです:

- (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(合成される文字列変数)が「null」である理由がわかりません

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)

最後のチェックは、viewDidLoadでserverURLを使用する直前に行われます。

ビルド設定にplistを追加しました(私は思います)。それは私のコードの問題であるに違いありませんが、私は何を見つけることができません。

4

1 に答える 1

0

plistロードする簡単な方法がありますNSDictionary

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

それを試してみてください。

于 2013-01-07T23:16:21.823 に答える