how do i fetch an object?

I eventually figured it out. I realized i was not correctly converting the identifier to a UIImage so even if I had fixed the error in the OP it still would not work because of numerous others that would have come up with that solution. Below is the solution i got to work:

    var myCollectionView: UICollectionView!
    var imageViews = [UIImageView]()
    var identifier = [
        "83BDF9C0-E1FB-4F68-9F2C-99649A67E218/L0/001",
        "18D08CEC-4075-4488-BFD1-E9403B214356/L0/001",
        "74257416-6D9C-48B2-9CE0-C23B56CB4171/L0/001",
        "2EA7CACE-9B9B-4FC9-ABC5-03BCE2BDAA2A/L0/001",
        "46A4CD2B-4FEB-4BBE-86DC-B79ED49BC300/L0/001",
        "E4290EB0-2B16-46AE-9B98-83379F6128F3/L0/001",
        "7C0B36FF-320D-4083-92E4-5A1F464FFFB1/L0/001",
        "DEE1414C-2B92-4147-8C3C-A1775FB324AD/L0/001"
    ]
    
    override func viewDidLoad() {
        let layout = UICollectionViewFlowLayout()
        myCollectionView = UICollectionView(frame: self.view.frame, collectionViewLayout: layout)
        myCollectionView.delegate = self
        myCollectionView.dataSource = self
        myCollectionView.backgroundColor = UIColor.white
        myCollectionView.allowsMultipleSelection = true
        myCollectionView.showsVerticalScrollIndicator = false
        myCollectionView.register(CollectionCell.self, forCellWithReuseIdentifier: "Cell")
        self.view.addSubview(myCollectionView)
    }
    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return identifier.count
    }
    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! CollectionCell
        
        let options = PHFetchOptions()
        let results = PHAsset.fetchAssets(withLocalIdentifiers: identifier, options: options)
        let manager = PHImageManager.default()
        results.enumerateObjects { (thisAsset, _, _) in
            manager.requestImage(for: thisAsset, targetSize: CGSize(width: 200.0, height: 200.0), contentMode: .aspectFit, options: nil, resultHandler: {(thisImage, _) in
                self.imageViews.append(UIImageView(image: thisImage))
            })
        }
        let image = imageViews[indexPath.item]
        cell.imageView.image = image.image
        return cell
    }

CLICK HERE to find out more related problems solutions.

Leave a Comment

Your email address will not be published.

Scroll to Top