2012-04-13 61 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.

希望它有帮助