0

ルートにディクショナリがあり、対応するキー順に並べられた行として 21 個の配列を持つプロパティ リストがあります。各キーには、8 つの文字列の配列 (値) があります。このようなもの:

  Root                     Dictionary       (21 items)
  "#14"                     Array           (8 items)   
  "#12"                     Array           (8 items)
    Item 0                  String           0.164
    Item 1                  String           0.123
    item 2                  String           0.211

.... すぐ

私の実装ファイルには、次のものがあります。

`- (void)loadTable9NECWithBundle:(NSBundle *)bundle {

   bundle = [NSBundle mainBundle] ;
    if (bundle != nil)
    {
  /* Read the cable table data from the disk in a dictionary of arrays. Each array contains >       only one cable size data. */
      NSString *CableData = [bundle pathForResource:@"Table9-NEC" ofType:@"plist"];
       NSDictionary *tableDict = [NSDictionary dictionaryWithContentsOfFile:CableData];
       NSString *datos = nil;
       NSEnumerator *enumerator = [tableDict keyEnumerator];
       id key;
       while ((key = [enumerator nextObject]))
       {
       oneCableSizeDataArray = [[NSMutableArray alloc] initWithObjects:[tableDict >     valueForKey:key] ,nil];
       NSLog(@"key is %@ ", key);
          datos = [oneCableSizeDataArray objectAtIndex: 0 ];
           NSLog(@"value is %@ ", datos);

      }

コンソールは、すべてのキーを正しく反復処理できることを明確に示していますが、配列 oneCableSizeDataArray は、plist ファイル表現のように 8 つの文字列ではなく、単一の文字列として値を取得します。これは、[oneCableSizeDataArray カウント] が 1 を返すことを意味します。(単一オブジェクト) .

なぜこれが起こっているのかわかりません。どんな助けでも大歓迎です。

4

1 に答える 1

1

私は現在 iOS 開発を行っている Mac ではありませんが、私が覚えていることから、使用しdictionaryWithContentsOfFileたくpropertyListWithData:options:format:error:ないので、ネストされたプロパティを正しくロードしません。そのメッセージの結果はNSDictionaryオブジェクトに割り当てられ、通常どおりにアクセスできます。(そういえば、最近のバージョンの Xcode では、 や などのより簡潔なインデックス作成とキー アクセスがサポートされoneCableSizeDataArray[0]ていtableDict["#14"]ます。)

于 2013-06-13T19:32:55.067 に答える