ver sesion las iniciar fotos descargar contactos como apple iphone objective-c ios5 alassetslibrary nsdocumentdirectory

iphone - las - icloud iniciar sesion



Cómo mostrar todas las imágenes del directorio NSDocument (3)

Primero, seleccioné las imágenes de la biblioteca de fotos a ALAsset Library y luego guardé las imágenes en el directorio de documentos de la ruta de la biblioteca ALAsset.

Estoy usando este código para almacenar imágenes en el directorio de documentos de ALAsset Library ... Funciona perfectamente ... Ahora quiero mostrar todas las imágenes que están almacenadas en el directorio de documentos en la vista de tabla ... ¿cómo puedo hacer esto? ¿¿Alguien puede ayudarme??

Código para importar imágenes de ALAsset Library a NSdocument directory

for (int j=0; j<[assetArray count]; j++) { ALAssetRepresentation *representation = [[assetArray objectAtIndex:j] defaultRepresentation]; NSString* filename = [documentPath stringByAppendingPathComponent:[representation filename]]; [[NSFileManager defaultManager] createFileAtPath:filename contents:nil attributes:nil]; NSOutputStream *outPutStream = [NSOutputStream outputStreamToFileAtPath:filename append:YES]; [outPutStream open]; long long offset = 0; long long bytesRead = 0; NSError *error; uint8_t * buffer = malloc(131072); while (offset<[representation size] && [outPutStream hasSpaceAvailable]) { bytesRead = [representation getBytes:buffer fromOffset:offset length:131072 error:&error]; [outPutStream write:buffer maxLength:bytesRead]; offset = offset+bytesRead; } [outPutStream close]; free(buffer);

}

Después de eso, obtuve los contenidos del directorio usando este código:

NSFileManager *manager = [NSFileManager defaultManager]; fileList = [manager directoryContentsAtPath:newDir];

También funciona ... pero ahora cuando quiero mostrar imágenes desde el directorio de documentos. No muestra nada ...

setImage.image=[UIImage imageNamed:[filePathsArray objectAtIndex:0]];

¿Alguien puede ayudar, dónde está el problema ????? - Tengo una duda: * ¿Es la forma correcta de importar imágenes de ALAsset Library al directorio de documentos?


Puede obtener todos los archivos de imagen del Directorio de documentos de esta manera:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSArray *filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath:documentsDirectory error:nil]; NSMutableArray *imgFiles = [[NSMutableArray alloc] init]; for (int i=0; i<filePathsArray.count; i++) { NSString *strFilePath = [filePathsArray objectAtIndex:0]; if ([[strFilePath pathExtension] isEqualToString:@"jpg"]) { [imgFiles addObject:[filePathsArray objectAtIndex:i]]; } } NSLog(@"array with paths of image files in the Document Directory %@", filePathsArray);

Y luego puede mostrar las imágenes en UITableView esta manera:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; } UIImageView *img = [[UIImageView alloc] initWithFrame:CGRectMake(5, 5, 50, 50)]; img.image = [UIImage imageWithContentsOfFile:[imgFiles objectAtIndex:indexPath.row]]; [cell addSubview:img]; return cell; }

¡¡¡Aclamaciones!!!


Puedes obtener contenido directamente por esto:

NSArray *directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject] error:NULL];

Para establecer la imagen:

[imgView setImage:[UIImage imageWithContentsOfFile:"Your complete path"]];


Esta respuesta es sobre cómo recuperar imágenes del directorio de documentos y mostrarlas en UITableView ...

En primer lugar, debe obtener todas las imágenes de su directorio de documentos en una matriz ....

-(void)viewWillAppear:(BOOL)animated { arrayOfImages = [[NSMutableArray alloc]init]; NSError *error = nil; NSString *stringPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]; NSArray *filePathsArray = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath: stringPath  error:&error]; for(int i=0;i<[filePathsArray count];i++) { NSString *strFilePath = [filePathsArray objectAtIndex:i]; if ([[strFilePath pathExtension] isEqualToString:@"jpg"] || [[strFilePath pathExtension] isEqualToString:@"png"] || [[strFilePath pathExtension] isEqualToString:@"PNG"]) { NSString *imagePath = [[stringPath stringByAppendingString:@"/"] stringByAppendingString:strFilePath]; NSData *data = [NSData dataWithContentsOfFile:imagePath]; if(data) { UIImage *image = [UIImage imageWithData:data]; [arrayOfImages addObject:image]; } } } }

después de eso - usando esta matriz, puedes mostrar la imagen en la celda de uitableview. Recuerda no agregar la vista de tabla en tu vista hasta que la matriz esté llena ...

#pragma mark - UItableViewDelegate methods -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [arrayOfImages count]; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tablView dequeueReusableCellWithIdentifier:CellIdentifier]; if(cell == nil) { cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; } //adjust your imageview frame according to you UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0.0, 0.0, 470.0, 80.0)]; [imageView setImage:[arrayOfImages objectAtIndex:indexPath.row]]; [cell.contentView addSubview:imageView]; return cell;

}

Ahora ejecuta, funcionará ..