1

現在、これらのコードを使用して画像を NSDocumentDirectory に保存しています。私はこのカウンターを命名規則として使用しています。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)selectedImage editingInfo:(NSDictionary *)editingInfo 
{
  [self.popoverController dismissPopoverAnimated:YES];
  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  NSString *documentsDir = [paths objectAtIndex:0];
  NSString *savedImagePath = [documentsDir stringByAppendingPathComponent:[NSString stringWithFormat:@"%d.png", counter]];
  UIImage *image = imageView.image;
  NSData *imageData = UIImagePNGRepresentation(image);
  [imageData writeToFile:savedImagePath atomically:NO];
}

ループを使用してすべてを取得する方が簡単なので、この方法を使用します。NSDocumentDirectory からすべての画像を取得して、別のビューで表示できるようにしたいと考えています。次のコードは、それらを取得する方法を示しています。

-(NSMutableArray *)GetImage:(NSMutableArray *)arrayImgNames
{
  NSMutableArray *tempArray;
  for(int i=0;i<[arrayImgNames count]; i++)
  {
    NSArray *paths1 = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths1 objectAtIndex:0];
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent: [arrayImgNames objectAtIndex:i]];
    [tempArray addObject:[[UIImage alloc] initWithContentsOfFile:filePath]];
    return tempArray;
  }
}

ただし、画像の命名規則としてカウンターを使用したくありません。それらに適切な名前を使用したいのですが、そうすると、すべての画像を取得する方法を変更する必要があります。

私が言及したこの方法以外に、すべての画像を取得できる他の方法はありますか?

4

2 に答える 2

2

次のアプローチを使用してファイルを取得できます。

NSURL *url = [[AppDelegate sharedAppDelegate] applicationDocumentsDirectory];
NSError *error = nil;
NSArray *properties = [NSArray arrayWithObjects: NSURLLocalizedNameKey, NSURLLocalizedTypeDescriptionKey, nil];

NSArray *files = [[NSFileManager defaultManager] contentsOfDirectoryAtURL:url
                  includingPropertiesForKeys:properties options:(NSDirectoryEnumerationSkipsPackageDescendants)
                  error:&error];

ドキュメント ディレクトリのすべてのファイルへのパスにfiles格納されます。次のコードは、名前を取得するのに役立ちます。

NSURL *url = [files objectAtIndex:index];
NSString *localizedName = [url lastPathComponent];
于 2011-10-04T10:07:01.243 に答える
0

NSDocumentDirectory からすべての画像を取得し、uiimageview viewcontroller.mに保存します。

  • (void)viewDidLoad { [super viewDidLoad];

    for (int i=0; i<5; i++) {
    
    imgview=[[UIImageView alloc]initWithFrame:CGRectMake(x, y, width, height)];
    
    NSArray *sysPaths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES );
    

    NSString *docDirectory = [sysPaths objectAtIndex:0];

    NSString *str=[NSString stringWithFormat:@"img%d.jpg",i];
    
    NSLog(@"abc %@",str);
    

    NSString *imagePath=[docDirectory stringByAppendingPathComponent:str];

    imgview.image=[UIImage imageWithData:[NSData dataWithContentsOfFile:imagePath]];
    [self.view addSubview:imgview]; [imgview setUserInteractionEnabled:YES];

    x=x+width+margin;
    if (x>=totalwidth) {
    
        y=y+height+margin;
        x=margin;
    
    }    
    

    } }

于 2015-02-10T05:17:49.017 に答える