2011-12-08 7 views
0

私はObjective-Cを初めて使うので、おそらく私がやっていることに対してかなり簡単な解決策があります。私のviewDidLoad機能でplistは配列にロードされません

// Grab information from the plist 
NSBundle *bundle = [NSBundle mainBundle]; 
NSString *plistPath = [bundle 
    pathForResource:@"conversions" 
    ofType:@"plist" 
]; 
NSArray *array = [[NSArray alloc] 
    initWithContentsOfFile:plistPath 
]; 

ファイル「の変換私がいる問題は、何らかの理由で、次のコードは、私の配列に私のplistファイルの内容を追加していないということです。 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>Categories</key> 
    <array> 
     <dict> 
      <key>name</key> 
      <string>Speed</string> 
      <key>conversions</key> 
      <array> 
       <dict> 
        <key>type</key> 
        <string>mph</string> 
        <key>description</key> 
        <string>mile/hour</string> 
        <key>multiplier</key> 
        <integer>1</integer> 
       </dict> 
       <dict> 
        <key>type</key> 
        <string>ft/s</string> 
        <key>description</key> 
        <string>foot/second</string> 
        <key>multiplier</key> 
        <real>1.466667</real> 
       </dict> 
       <dict> 
        <key>type</key> 
        <string>km/h</string> 
        <key>description</key> 
        <string>kilometer/hour</string> 
        <key>multiplier</key> 
        <real>1.609344</real> 
       </dict> 
       <dict> 
        <key>type</key> 
        <string>m/s</string> 
        <key>description</key> 
        <string>meter/second</string> 
        <key>multiplier</key> 
        <real>0.44704</real> 
       </dict> 
      </array> 
     </dict> 
     <dict> 
      <key>name</key> 
      <string>Distance</string> 
      <key>conversions</key> 
      <array> 
       <dict> 
        <key>type</key> 
        <string>ft</string> 
        <key>description</key> 
        <string>feet</string> 
        <key>multiplier</key> 
        <integer>1</integer> 
       </dict> 
       <dict> 
        <key>type</key> 
        <string>yd</string> 
        <key>description</key> 
        <string>yard</string> 
        <key>multiplier</key> 
        <real>0.3333333</real> 
       </dict> 
       <dict> 
        <key>type</key> 
        <string>mi</string> 
        <key>description</key> 
        <string>mile</string> 
        <key>multiplier</key> 
        <real>0.0001894</real> 
       </dict> 
       <dict> 
        <key>type</key> 
        <string>in</string> 
        <key>description</key> 
        <string>inch</string> 
        <key>multiplier</key> 
        <integer>12</integer> 
       </dict> 
       <dict> 
        <key>type</key> 
        <string>m</string> 
        <key>description</key> 
        <string>meter</string> 
        <key>multiplier</key> 
        <real>0.3048</real> 
       </dict> 
       <dict> 
        <key>type</key> 
        <string>km</string> 
        <key>description</key> 
        <string>kilometer</string> 
        <key>multiplier</key> 
        <real>0.0003048</real> 
       </dict> 
       <dict> 
        <key>type</key> 
        <string>cm</string> 
        <key>description</key> 
        <string>centimeter</string> 
        <key>multiplier</key> 
        <real>30.48</real> 
       </dict> 
      </array> 
     </dict> 
     <dict> 
      <key>name</key> 
      <string>Volume</string> 
      <key>conversions</key> 
      <array> 
       <dict> 
        <key>type</key> 
        <string>ft^3</string> 
        <key>description</key> 
        <string>cubic feet</string> 
        <key>multiplier</key> 
        <integer>1</integer> 
       </dict> 
       <dict> 
        <key>type</key> 
        <string>liter</string> 
        <key>description</key> 
        <string>liter</string> 
        <key>multiplier</key> 
        <real>28.31685</real> 
       </dict> 
       <dict> 
        <key>type</key> 
        <string>acre ft</string> 
        <key>description</key> 
        <string>acre foot</string> 
        <key>multiplier</key> 
        <real>2.3e-05</real> 
       </dict> 
       <dict> 
        <key>type</key> 
        <string>barrel</string> 
        <key>description</key> 
        <string>barrel [US, liquid]</string> 
        <key>multiplier</key> 
        <real>0.2374768</real> 
       </dict> 
       <dict> 
        <key>type</key> 
        <string>gallon</string> 
        <key>description</key> 
        <string>gallon [US, liquid]</string> 
        <key>multiplier</key> 
        <real>29.92208</real> 
       </dict> 
       <dict> 
        <key>type</key> 
        <string>quart</string> 
        <key>description</key> 
        <string>quart [US, liquid]</string> 
        <key>multiplier</key> 
        <real>29.92208</real> 
       </dict> 
      </array> 
     </dict> 
    </array> 
</dict> 
</plist> 
+2

plistファイル全体を一度に1つのアレイにフェッチすることはできません。 私はあなたがキーを使ってそれをフェッチし、それをNSMutableDictionaryに格納しなければならないと思います。 –

答えて

7

あなたのplistのルートオブジェクトは辞書ではなく配列であるように私には思えるが、あなたはNSDictionaryのにロードすることになっていませんか?

NSDictionary *dictionary = [[NSDictionary alloc] initWithContentsOfFile:plistPath]; 
関連する問題