2012-04-13 87 views
0

我已經實現的詞典內容訪問方法陣列的所有的數組,但它是僅訪問一個內容,請在此如何訪問的詞典內容

幫助這裏是我的數據文件

<__NSArrayM 0x8b7a350>(
{ 
    clkDate = "Wednesday, April 11, 2012"; 
    resData =  (
       { 
      data = 10; 
      independentItem = 0; 
      module = 6; 
      newDate = "11-4-2012"; 
      newTime = "13:31"; 
      seqCounter = 101; 
      sequence = 10007; 
      session = 101; 
      timeframe = Breakfast; 
      timestamp = "2012-04-11 08:01:27 +0000"; 
      title = "Glucose reading : Low"; 
      type = L; 
     }, 
       { 
      data =    { 
       hours = 0; 
       minutes = 0; 
       which = "Walking:(null)"; 
      }; 
      independentItem = 1; 
      module = 13; 
      seqCounter = 101; 
      sequence = 10009; 
      session = 101; 
      timestamp = "2012-04-12 08:01:40 +0000"; 
      title = "Low Cause: Increased Exercise"; 
     } 
    ); 
    seqCounter = 101; 
}, 
{ 
    clkDate = "Thursday, April 12, 2012"; 
    resData =  (
       { 
      data = 200; 
      independentItem = 0; 
      module = 6; 
      newDate = "12-4-2012"; 
      newTime = "13:31"; 
      seqCounter = 102; 
      sequence = 10017; 
      session = 101; 
      timeframe = Breakfast; 
      timestamp = "2012-04-12 08:01:46 +0000"; 
      title = "Glucose reading : High"; 
      type = H; 
     }, 
       { 
      data =    { 
       hours = 0; 
       minutes = 0; 
       which = "Other Light:Kkkkk"; 
      }; 
      independentItem = 1; 
      module = 26; 
      seqCounter = 102; 
      sequence = 10022; 
      session = 101; 
      timestamp = "2012-04-11 18:30:00 +0000"; 
      title = "High Cause: Decreased Exercise"; 
     } 
    ); 
    seqCounter = 102; 
}, 
{ 
    clkDate = "Thursday, April 12, 2012"; 
    clkIndependentItem = 1; 
    resData =  (
       { 
      data =    { 
       bathing = 1; 
       driving = 1; 
       grocery = 1; 
       meal = 1; 
      }; 
      independentItem = 1; 
      module = 31; 
      seqCounter = 103; 
      sequence = 10035; 
      session = 101; 
      timestamp = "2012-04-12 08:02:32 +0000"; 
      title = "High Cause: Decreased activity"; 
     } 
    ); 
    seqCounter = 103; 
} 
) 

另外,在上述數據文件我需要訪問「independentItem = 1」相關的項目

我試圖源代碼是

for (int i = 0; i < [self.gluClkDetailArray count]; i++) 
     { 
      NSMutableDictionary *mDict = [self.gluClkDetailArray objectAtIndex:i]; 
      { 
       NSMutableArray *mResData = [mDict objectForKey:@"resData"]; 
       NSDate *mTimestamp = [[mResData objectAtIndex:0] objectForKey:@"timestamp"]; 

       NSDateFormatter *mFormatter = [[NSDateFormatter alloc] init]; 
       [mFormatter setDateStyle:NSDateFormatterFullStyle]; 

       NSString *mClkDate = [mFormatter stringFromDate:mTimestamp]; 
       [mDict setValue:mClkDate forKey:@"clkDate"]; 

       NSString *mIndItem = [[mResData objectAtIndex:0] objectForKey:@"independentItem"]; 
       if (mIndItem.intValue == 1) 
       { 
        [mDict setValue:mIndItem forKey:@"clkIndependentItem"]; 
        [mIndpendentArray addObject:mDict]; 
       } 
       [gluClkResultArray addObject:mDict]; 

     } 

當我把mResData objectAtIndex:0而不是我,應用程序崩潰。在

NSString *mIndItem = [[mResData objectAtIndex:1] objectForKey:@"independentItem"]; 

的independentItem在字典中,在:我已保存基於序列計數器的字典值陣列預先

由於

+0

聽起來就像你的數組沒有正確設置任何內容。 – SomaMan 2012-04-13 07:54:26

+1

瞭解設置斷點和調試,方法是逐步執行代碼並檢查對象和變量的值。這將是您學習的最大節省時間之一,因爲您將能夠更快地追蹤這樣的問題 – 2012-04-13 07:55:53

回答

0

變化

NSString *mIndItem = [[mResData objectAtIndex:0] objectForKey:@"independentItem"]; 

到索引1,而不是0.

希望它有幫助