1

我有一个包含条目数的图表。它使用For来自 plist 的循环加载数据..意味着一个一个..现在我想要这样一种方式,如果从中读取的数据greater than 6应该采用substringToIndex:2elsesubstringToIndex:6

但问题是:数据在plist中并一个一个地获取它..我想要如果greater than 6那么它应该是substringToIndex:2整个值而不是下一个值。但是如果它超过6我怎么能重新加载数据来制作整个值substringToIndex:2

代码

- (void)drawRect:(CGRect)rect {

  int l=0;
  NSMutableArray *Array=[NSMutableArray arrayWithArray:[self readFromPlistForOneWeek]];
  NSMutableArray *items = [[NSMutableArray alloc] init];

  for (id object in [Array reverseObjectEnumerator]){

    if ([object isKindOfClass:[NSDictionary class]])
    {
        NSDictionary *objDict = (NSDictionary *)object;

        //problem part below 
           l++;
        if(l>6){
              str1=[str1 substringToIndex:2];
              tempItemi.isPercentage=YES;
              tempItemi.yValue=f;
              tempItemi.width=10;
              tempItemi.name=str1;      
              [items addObject: tempItemi];
          } else{
              str1 =[str1 substringToIndex:6];
              tempItemi.isPercentage=YES;
              tempItemi.yValue=f;
              tempItemi.width=10;
              tempItemi.name=str1;
              [items addObject: tempItemi];
          }
     }

这给了我这样的输出

输入图片 .

在这里,如果值超过 6,则所有的都应该采用 subStringToIndex:2 ..不仅超过 6(不是图像中的最后 2 个)

4

1 回答 1

1

您不必使用if (l>6). 可以直接使用,

if ([Array count] > 6)

上面的代码将不起作用,因为您在循环中递增它并在递增时检查它。您需要检查数组的计数。

于 2013-01-07T06:36:48.517 回答