2012-02-02 16 views
0

plistファイルから問題を読み取っています 私のプロジェクトにはSettings.plistファイルが保存されています(リソースフォルダの内外両方で試しました) googleとstackOverFlowのいずれも働くことを提案した。私は何が欠けているのか分かりません。 コードは次のとおりです。私は* plistPathを得るためのさまざまな方法を試してみたplistから読み取る

NSString *pListPath = [[NSBundle mainBundle] pathForResource:@"Settings" ofType:@"plist"]; 
    NSMutableDictionary *settings = [[[NSMutableDictionary alloc] initWithContentsOfFile:pListPath] retain]; 
    BOOL touch = [[settings objectForKey:@"Touch"] boolValue]; 
    NSLog(@"%@",touch ? @"TOUCH IS YES" : @"TOUCH IS NO"); 

、NSBundle、ファイル名の文字列だけ。また試みたNSMutabelDictionary、regulat NSDictionary、NSArray、NSMutableArray

何も動作していないようです。

すべてのヘルプはapreciatedされるだろう。..ルート辞書、まだ運にplistの最初の行を設定しようとしました。.. Settings.plistは、単一の値touchを有し、そのキーがYES おかげでたくさんです!

EDIT: ここでのplistです:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>Root</key> 
    <dict> 
     <key>Touch</key> 
     <true/> 
    </dict> 
</dict> 
</plist> 
+0

' initWithContentsOfFile後 'settings'の値は何ですか?また、あなたの質問を編集し、 'Settings.plist'ファイルの内容を貼り付けてください。 –

+0

設定の価値をどのように伝えるか? –

+0

NSLogまたはデバッガを使用します。 –

答えて

3

あなたのplistは1つのキー、「Root」でトップレベルの辞書が含まれています。そのキーの値は、1つのキー「Touch」を持つ別の辞書です。この(わずかに遅い)

BOOL touch = [[[settings objectForKey:@"Root"] objectForKey:@"Touch"] boolValue]; 

か::

これを試してみてください `リターン:

BOOL touch = [[settings valueForKeyPath:@"Root.Touch"] boolValue]; 
+0

ありがとう! 最初のものが機能しました! –

+0

両者は同じことをしています。 2番目は書き込みが簡単ですが、動作は遅くなります。 –

関連する問題