0
-(void)downloadResult:(id)data
{
   if([data isKindOfClass:[NSArray class]])
   {
       if ([data count]==3) 
       {
           if ([dataResultDictionary count]) 
           {
                [[dataResultDictionary objectForKey:[data objectAtIndex:0]] addObject:[NSMutableArray arrayWithObjects:[data objectAtIndex:1],[data lastObject], nil]];
           }
           else
           {
               [dataResultDictionary setObject:[NSMutableArray arrayWithObject:[NSMutableArray arrayWithObjects:[data objectAtIndex:1],[data lastObject], nil]] forKey:[data objectAtIndex:0]];
           }
           if([dataResultDictionary count])
           {
                if ([[dataResultDictionary objectForKey:[data objectAtIndex:0]] count] == requiredResultCount) 
                 {
                    [downloadControlQueue cancelAllOperations];
                    [downloadControlQueue release];
                    downloadControlQueue = nil;
                    processing = YES;
                    [self procesResultData];
                }
            }

      }
      else
      {
            BOOL errorResult = TRUE;

            if ([data count]) 
            {
                        if ([[data lastObject] isKindOfClass:[NSMutableDictionary class]]) {
                            if ([[data lastObject] count]) {
                                if ([[[[data lastObject] allValues] objectAtIndex:0] count]) {

                                    [dataResultDictionary setObject:[data lastObject] forKey:[data objectAtIndex:0]];
                                    errorResult = false;
                }

               }
          }
       }

            if(errorResult)
            {
                [dataResultDictionary setObject:@"" forKey:[data objectAtIndex:0]];
            }
            if ([dataResultDictionary count] == requiredResultCount) {
                [downloadControlQueue cancelAllOperations];
                [downloadControlQueue release];
                downloadControlQueue = nil;
                processing = YES;
                [self procesResultData];

            }
            }
        }


    }

サーバーからデータを取得しています。ダウンロード結果を画像の % 値で表示したい。しかし、私はクラッシュしています。最初は、この方法は WOTKING です。画像の最大 70% のデータを表示していますが、残りの部分がクラッシュしています。助けてください

4

2 に答える 2

0

あなたの場合[dataResultDictionary objectForKey:[data objectAtIndex:0]]は配列ではなく、NSStringです。したがって、例外が発生しています。試す

if ([dataResultDictionary count]) {
     if([[dataResultDictionary objectForKey:[data objectAtIndex:0]] isKindOfClass:[NSArray class]]){
          [[dataResultDictionary objectForKey:[data objectAtIndex:0]] addObject:[NSMutableArray arrayWithObjects:[data objectAtIndex:1],[data lastObject], nil]];
     }
}
else
{
     [dataResultDictionary setObject:[NSMutableArray arrayWithObject:[NSMutableArray arrayWithObjects:[data objectAtIndex:1],[data lastObject], nil]] forKey:[data objectAtIndex:0]];
}
于 2013-09-06T07:48:32.263 に答える