Me gustaría esperar a que se ejecute este código antes de continuar, pero como estos bloques se llaman de forma asíncrona, no sé cómo hacerlo ???Espere a que se completen los bloques de assetForURL
NSURL *asseturl;
NSMutableArray *tmpListAsset = [[NSMutableArray alloc] init];
ALAssetsLibrary *library = [[[ALAssetsLibrary alloc] init] autorelease];
NSMutableArray *objectsToRemove = [[NSMutableArray alloc] init];
for (NSDictionary *dico in assetsList) {
asseturl = [NSURL URLWithString:[dico objectForKey:@"assetUrl"]];
NSLog(@"asset url %@", asseturl);
// Try to load asset at mediaURL
[library assetForURL:asseturl resultBlock:^(ALAsset *asset) {
// If asset doesn't exists
if (!asset){
[objectsToRemove addObject:dico];
}else{
[tmpListAsset addObject:[asseturl absoluteString]];
NSLog(@"tmpListAsset : %@", tmpListAsset);
}
} failureBlock:^(NSError *error) {
// Type your code here for failure (when user doesn't allow location in your app)
}];
}
Esta es una respuesta solo de enlace y debe mejorarse incluyendo el código relevante del artículo de origen y la modernización (ya que esta respuesta tiene ahora 4 años). – brandonscript
Y el enlace está roto ... – diegomen