0

안녕하세요. 내 앱에 문제가 있습니다. 내 View Controller 내에서 카메라의 모든 사진을 반환해야하는 맞춤 셀이있는 CollectionView입니다. 내 아이폰의 애플 리케이션 사진의 롤 섹션.가장 좋은 방법은 PHPhotoLibrary를 사용하여 사용자 정의 셀로 UICollectionView의 카메라 롤 이미지를 표시합니다.

이제는 사용자 정의 셀의 ImageView에서 사진을 보여주기 위해 모든 단계를 완료했습니다. 지금까지 아무런 문제가 없습니다. 내 문제는 사진을 스크롤하면서 사진을 업로드하는 것이 매우 어렵다는 것입니다. 느리고 즉시 응용 프로그램 충돌이 .. 로그에 다시이 오류를 나에게주고 나서

[GatekeeperXPC] assetsd에 연결이 중단 또는 assetsd는 25/02/2017 20 죽었다 : 이미지 만들기 [일반]을 알 수없는 형식의 형식은 오류입니다.

컬렉션보기에서 사진을 표시하는 올바른 방법을 선택했는지 알 수 있습니까? 나는 어디로 잘못 갔는가? 내 앱이 충돌하기 때문에?

내가 사용 PHCachingImageManager

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.nameTextField.delegate = self; 
    self.emailTextField.delegate = self; 
    self.passwordTextField.delegate = self; 
    self.collectionView.delegate = self; 
    self.collectionView.dataSource = self; 
    _collectionView.backgroundColor = [UIColor clearColor]; 
} 

-(void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 
    [_nameTextField becomeFirstResponder]; 
    [self queryImage]; 


} 

-(void)queryImage { 
    PHFetchOptions *fetchOptions = [[PHFetchOptions alloc] init]; 

    PHFetchResult *collection = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeSmartAlbumUserLibrary options:fetchOptions]; 

    if (collection.firstObject != nil) { 
     _photoFound = YES; 
     _assetCollection = collection.firstObject; 

    } else { 

    } 

    _photoAsset = [PHAsset fetchAssetsInAssetCollection:_assetCollection options:nil]; 
    [_collectionView reloadData]; 
} 

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { 
    return CGSizeMake(80,80); 
} 

-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { 

    NSUInteger count = 0; 
    if (_photoAsset != nil) { 
     count = [_photoAsset count]; 
    } 
    return count; 
} 

- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *reuseIdentifier = @"imageCell"; 

    UPCameraRollCollectionViewCell* cell = [cv dequeueReusableCellWithReuseIdentifier:reuseIdentifier forIndexPath:indexPath]; 
    cell.backgroundColor = [UIColor redColor]; 


    PHAsset *asset = [_photoAsset objectAtIndex:indexPath.item]; 

PHImageManager *imageManager = [PHImageManager defaultManager]; 
    [imageManager requestImageForAsset:asset targetSize:PHImageManagerMaximumSize contentMode:PHImageContentModeAspectFill options:nil resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) { 

[cell setThumbnailImage:result]; 

}]; 


    return cell; 
} 

답변

0

를 활용하면이 코드 나를

줄 수있는 모든 도움을 주셔서 감사합니다.

애플은 정확히 어떤 종류의 일을하는지 보여주는 example을 가지고 있습니다. 콜렉션 뷰는 의도 된 사용 사례입니다.

+0

더 잘 이해하기 위해 코드에 대한 예를 들어 주시겠습니까? 나는 심지어 PHP를 사용하지 못했습니다. 라이브러리는 완전히 새로운 것입니다. – kAiN

+0

그 농담 같은데요, 하나님이 말씀하시는 곳이 아닙니까? "임마, 나는 이미 두 대의 보트와 헬리콥터를 보냈습니다." 예제를보세요! – matt