J'ai des difficultés avec la fonction post. Le résultat que je reçois est "échec (SwiftyInsta.GenericError.weakObjectReleased)"
Qu'est-ce que je fais mal? Mes excuses s'il s'agit d'une simple erreur. J'ai cherché dans toutes les questions ici et c'est tout ce que j'ai obtenu, il compile mais renvoie cette erreur.
func uploadImage() {
let img = imageView.image!
let myCaption = "Sample Caption"
guard let key = UserDefaults.standard.string(forKey: "current.account") else { return print("`key` not found.") }
guard let cache = Authentication.Response.persisted(with: key) else { return print("`Authentication.Response` not found.") }
let handler = APIHandler()
handler.authenticate(with: .cache(cache)) { _ in
let img1: Upload.Picture = Upload.Picture(image: img, caption: myCaption, size: CGSize(width: 30,height: 30) )
handler.media.upload(photo: img1, completionHandler: { (result) in
print(result)
})
}
}
SwiftyInsta.GenericError.weakObjectReleased
est généralement appelé lorsque APIHandler
n'est pas fortement référencé.
Si votre exemple signifie quelque chose comme ceci :
func someFunction(cache: Authentication.Response) {
let handler = APIHandler()
handler.authenticate(with: .cache(cache)) { _ in
}
}
Une fois que le gestionnaire de complétion est appelé, de manière asynchrone, votre handler
a déjà été libéré.
Pour que cela fonctionne, vous devez le « persister » quelque part. Par exemple.
class SomeClass {
let handler = APIHandler()
func someFunction(cache: Authentication.Response) {
handler.authenticate(with: .cache(cache)) { _ in }
}
}
Cela signifie que handler
ne sera pas désalloué tant que votre instance SomeClass
ne le sera pas.
Merci, il obtient maintenant "échec (SwiftyInsta.GenericError.custom ("Réponse non valide. 400"))". Ceci est mon viewController, pourriez-vous s'il vous plaît me montrer mes erreurs dans celui-ci ou si vous avez une fonction de travail pour publier une image que vous pourriez simplement couper et coller pour moi qui m'aiderait énormément, je n'ai aucune idée d'où cela va mal
import UIKit
import SwiftyInsta
class DeploymentViewController: UIViewController {
let handler = APIHandler()
<strong i="6">@IBOutlet</strong> weak var sampleImage: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
}
<strong i="7">@IBAction</strong> func test(_ sender: Any) {
guard let key = UserDefaults.standard.string(forKey: "current.account") else { return
print("`key` not found.") }
guard let cache = Authentication.Response.persisted(with: key) else { return
print("`Authentication.Response` not found.") }
handler.authenticate(with: .cache(cache)) { _ in }
let img1: Upload.Picture = Upload.Picture(image: self.sampleImage.image!, caption:
"sampleText", size: CGSize(width: 1080,height: 1080) )
self.handler.media.upload(photo: img1, completionHandler: { (result) in
print(result)
}) }
}
J'ai ouvert un nouveau problème pour votre nouvelle exception.
Je me renseignerai dès que j'aurai un peu de temps :muscle: @trentona
Veuillez référencer #106 à partir de maintenant.
Commentaire le plus utile
SwiftyInsta.GenericError.weakObjectReleased
est généralement appelé lorsqueAPIHandler
n'est pas fortement référencé.Si votre exemple signifie quelque chose comme ceci :
Une fois que le gestionnaire de complétion est appelé, de manière asynchrone, votre
handler
a déjà été libéré.Pour que cela fonctionne, vous devez le « persister » quelque part. Par exemple.
Cela signifie que
handler
ne sera pas désalloué tant que votre instanceSomeClass
ne le sera pas.