Je rencontre un problème avec mon code. Je ne peux pas sembler créer un CGImageSource
/CGImageSourceRef
, cependant chaque repo que je vois utilise exactement la même méthode. J'ai testé pour voir si l'objet de données contient le gif
et c'est le cas. J'ai donc isolé cette erreur à la fonction CGImageSourceCreateWithData
et je ne sais pas comment y remédier. Toute aide serait appréciée.CGImageSourceCreateWithData continue de générer des erreurs
est ici l'erreur:
warning: could not load any Objective-C class information. This will significantly reduce the quality of type information available.
Il échoue après spécifiquement cette fonction:
var imgSource = CGImageSourceCreateWithData(data, nil)
Voici mon code simple qui échoue après:
import UIKit
import ImageIO
import MobileCoreServices
import AVFoundation
class LCGIFImage: UIImage {
//MARK: Initializers
convenience override init?(contentsOfFile path: String) {
let data = NSData(contentsOfURL: NSURL(string: path)!)
self.init(data: data!)
}
convenience override init?(data: NSData) {
self.init(data: data, scale: 1.0)
}
override init?(data: NSData, scale: CGFloat) {
var imgSource = CGImageSourceCreateWithData(data, nil)
super.init(data: data, scale: scale)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
required convenience init(imageLiteral name: String) {
fatalError("init(imageLiteral:) has not been implemented")
}
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let path = NSBundle.mainBundle().URLForResource("1", withExtension: "gif")?.absoluteString as String!
let test = LCGIFImage(contentsOfFile: path)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
let path = NSBundle.mainBundle() pathForResource ("1", ofType: "gif"). –
@LeoDabus Merci. Mais, le problème n'est pas avec le chemin. Il est capable de localiser le fichier gif. C'est avec la fonction 'CGImageSourceCreateWithData' qui continue à me donner l'avertissement': impossible de charger des informations de classe Objective-C. Cela réduira de manière significative la qualité des informations de type disponibles. – iamktothed