2013-03-16 61 views
0

它運作良好,但它並沒有停止。不能停止NSAssetsLibrary

  [group enumerateAssetsAtIndexes:set options:NSEnumerationReverse usingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) 
      { 
       CGImageRef imageRef = result.defaultRepresentation.fullResolutionImage; 
       UIImage *toSend=[UIImage imageWithCGImage:imageRef]; 

       NSLog(@"INDEXX:%d",index); //logged after i stop ! 

       for(int c=0;c<[selectedButtonsTags count];c++) 
        if((numberOfAssets-1)-index ==[[selectedButtonsTags objectAtIndex:c] integerValue]) 
        {[savedImages addObject:toSend]; NSLog(@"IMAGE IS:%@ index:%d",toSend,index); } 


       if(index==numberOfAssets-max-1) 
       { NSLog(@"OUT!"); //it DO log this ! 
        *stop=YES; 
       } 


      }]; 

它記錄OUT後,再次登錄index:垃圾我number`

+0

你必須檢查'結果== nil'或塊'指數== NSNotFound',看到http://stackoverflow.com/questions/15096662/assetslibrary-a-simple-bug一個非常類似的問題。 – 2013-03-16 15:29:36

回答

0

瞭解它是如何工作的。 如果我在阻止他之前在街區做事情,他會繼續列舉,當我阻止他時,他已經開始了下一個索引。

讓你擁有權當塊做更多的事情開始之前阻止他。

  if(index==numberOfAssets-max-1) 
       *stop=YES; 

現在在塊的開始,他停止。 如果需要稍後調用一個函數,則可以比之後放一個相同的條件。但是,如我所說,你必須先阻止他。