Sto provando a caricare tutte le immagini dall'album fotografico dell'utente nella Vista raccolta della mia app, ma dopo aver caricato alcune delle immagini loro, l'app si chiuderà e tornerà al menu principale. Anche la connessione con XCode è disconnessa. Questo non accade nel simulatore ma solo nell'iPhone 4s con cui sto testando. I messaggi di errore che compaiono prima che si schianti è, in ordine cronologico,Caricamento di immagini da Foto a collezione visualizza risultati con messaggio di errore "Connessione a assetsd interrotta o asset persi"
- memoria Ricevuto avvertimento
- Collegamento a assetsd è stato interrotto o assetsd morti.
Ho raccolto diverse parti del codice che credo causino questo problema.
var imgFetchResult: PHFetchResult!
override func viewDidLoad() {
super.viewDidLoad()
let fetchOptions = PHFetchOptions()
fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: true)]
let fetchResult = PHAsset.fetchAssetsWithMediaType(PHAssetMediaType.Image, options: fetchOptions)
if fetchResult.count > 0
{
println("images found ? \(fetchResult.count)")
self.imgFetchResult = fetchResult
}
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell
{
println("cellForItemAtIndexPath")
let cell: PhotoThumbnailCollectionViewCell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as PhotoThumbnailCollectionViewCell
println("indexpath is \(indexPath.item)")
if(indexPath.item == 0)
{
cell.backgroundColor = UIColor.redColor() //temp placeholder for camera image
}
else
{
let asset: PHAsset = self.imgFetchResult[indexPath.item] as PHAsset
PHImageManager.defaultManager().requestImageForAsset(asset, targetSize: PHImageManagerMaximumSize, contentMode: .AspectFill, options: nil, resultHandler: {(result, info) in cell.setThumbnailImage(result)
})
}
return cell
}
Credo che ho bisogno di liberare la memoria, ma non so cosa. Sembra essere le immagini che vengono caricate nelle celle della vista di raccolta.
Ho anche scoperto che la vista di raccolta non va oltre le 4 immagini. Dopo la quarta immagine, si verifica l'arresto. Inoltre, le immagini non sono caricate in ordine.
Quello che è sorprendente per favore dimmi che taglia devo dare? come hai detto ho dato 105 e 105 ma l'immagine non è chiara, quali valori devo passare per visualizzare l'immagine con la qualità –
Puoi fare: let targetSize = CGSize (larghezza: asset.pixelWidth/2, altezza: asset. pixelHeight/2) – jamesthakid