Question

Je suis actuellement en utilisant un code assez standard pour les actifs énumèrent dans le groupe. Sauf que maintenant j'ai une nouvelle erreur

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSOrderedSet enumerateObjectsAtIndexes:options:usingBlock:]: index 46 beyond bounds [0 .. 45]'

Voici le code que j'utilise.

 [group enumerateAssetsWithOptions:NSEnumerationReverse usingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {
            NSLog(@"Asset %@", result);
            if (result != nil)
            {
                Asset *asset = [provider newAsset];
                asset.date = [result valueForProperty:ALAssetPropertyDate];
                id duration = [result valueForProperty:ALAssetPropertyDuration];
                asset.duration =  [NSDecimalNumber decimalNumberWithString:[NSString stringWithFormat:@"%@", duration]];
                CLLocation *location = [result valueForProperty:ALAssetPropertyLocation];
                asset.location = [location description];
                asset.orientation = [result valueForProperty:ALAssetPropertyOrientation];
                asset.type = [result valueForProperty:ALAssetPropertyType];
                NSDictionary *urls = [result valueForProperty:ALAssetPropertyURLs];
                for (NSString * key in urls) {
                    NSLog(@"Url = %@",[urls objectForKey:key]);
                    asset.url = [NSString stringWithFormat:@"%@", [urls objectForKey:key]];
                }

                [assetGroup addAssetsObject:asset];

                [asset release]; // Corrected based on comments

            }
        }];

L'objet fournisseur est mon fournisseur de base de données personnalisée. Mais l'élimination de ce code ne sert à rien. haut NSLog ne se tiré qui me dit que le code d'énumération a un problème en dehors de mon contrôle. Est-ce que quelqu'un d'autre fait l'expérience?

Était-ce utile?

La solution 3

Quelque chose a été apparemment foiré avec ma photothèque. Après avoir effacé sur mes photos et d'exécuter l'application à nouveau, je ne suis plus obtenir cette question.

Bien sûr, je savais ce que souhaite le problème réel était et pourquoi le AssetsLibrary a essayé après la Bounds énumération.

Autres conseils

Ce bug peut être contournée en définissant les filtres aux photos, puis des vidéos, et pour chacun d'eux énumérant à son tour, au lieu de le garder à la valeur par défaut « actifs ».

J'affiché les détails ici: ALAssetsLibrary semble retourner un nombre incorrect de mes photos

Je vois la même question. Il est un bug du côté d'Apple.

Ils exécutent le bloc d'énumération dans un thread séparé et plantage sortant des limites. C'est dommage! Je ne peux pas trouver un moyen de rattraper cette même. App tombe en panne, et il n'y a rien que vous pouvez faire jusqu'à ce que leur bibliothèque se fixe.

Modification de l'appareil photo rouleau ou parfois lancer iPhoto pour iPad résout le problème, mais il reviendra. Heureusement, il ne se produit pas trop souvent, mais Apple doit réagir à cela.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top