के लिए शून्य का रिटर्न देता है PHImageManager.defaultManager() का लगभग 10%। अनुरोध ImageForAsset वैध "Ugrmage" के बाद वैध वैध लौटने के बाद वैध UIImage के बजाय शून्य देता है। कोई त्रुटि या अन्य सुराग जो मैं देख सकता हूं वह शून्य के साथ जानकारी में वापस आ गया है।PHImageManager requestImageForAsset कभी-कभी iCloud फ़ोटो
ऐसा लगता है कि iCloud से डाउनलोड करने की आवश्यकता है, iCloud फोटो लाइब्रेरी और अनुकूलित आईपैड स्टोरेज दोनों सक्षम हैं। मैंने विकल्प, आकार इत्यादि को बदलने की कोशिश की है लेकिन कुछ भी मायने नहीं रखता है।
यदि मैं विफलता के बाद अनुरोध ImageForAsset को फिर से प्रयास करता हूं तो यह आमतौर पर यूआईएममेज को सही ढंग से वापस कर देगा, हालांकि कभी-कभी इसे दो रिट्रीज़ की आवश्यकता होती है।
कोई विचार क्या मैं गलत कर रहा हूं? या यह सिर्फ फोटो ढांचे में एक बग है?
func photoImage(asset: PHAsset, size: CGSize, contentMode: UIViewContentMode, completionBlock:(image: UIImage, isPlaceholder: Bool) -> Void) -> PHImageRequestID? {
let options = PHImageRequestOptions()
options.networkAccessAllowed = true
options.version = .Current
options.deliveryMode = .Opportunistic
options.resizeMode = .Fast
let requestSize = !CGSizeEqualToSize(size, CGSizeZero) ? size : PHImageManagerMaximumSize
let requestContentMode = contentMode == .ScaleAspectFit ? PHImageContentMode.AspectFit : PHImageContentMode.AspectFill
return PHImageManager.defaultManager().requestImageForAsset(asset, targetSize: requestSize, contentMode: requestContentMode, options: options)
{ (image: UIImage!, info: [NSObject : AnyObject]!) in
if let image = image {
let degraded = info[PHImageResultIsDegradedKey] as? Bool ?? false
completionBlock(image: photoBlock.rotatedImage(image), isPlaceholder: degraded)
} else {
let error = info[PHImageErrorKey] as? NSError
NSLog("Nil image error = \(error?.localizedDescription)")
}
}
}
पर एक नज़र डालें, मुझे बिल्कुल वही समस्या है, क्या आपको इसके लिए कोई समाधान मिला? – dlinsin
मुझे एक ही समस्या दिखाई दे रही है। मुझे विश्वास है कि यह एक बग है और एक बग रिपोर्ट दायर की है। – Joey
मैं यह देख रहा हूं जब मैं 'options.deliveryMode =HighQualityFormat' सेट करता हूं लेकिन जब मैं' options.deliveryMode =Opportunistic' –