Ich habe Schwierigkeiten mit der Post-Funktion. Das Ergebnis, das ich erhalte, ist "Failure(SwiftyInsta.GenericError.weakObjectReleased)"
Was mache ich falsch? Ich entschuldige mich, wenn dies ein einfacher Fehler ist. Ich habe alle Fragen hier durchsucht und das ist so weit, wie ich es habe, es wird kompiliert, gibt aber diesen Fehler zurück.
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
wird normalerweise aufgerufen, wenn APIHandler
nicht stark referenziert ist.
Wenn Ihr Beispiel so etwas bedeutet:
func someFunction(cache: Authentication.Response) {
let handler = APIHandler()
handler.authenticate(with: .cache(cache)) { _ in
}
}
Sobald der Abschlusshandler asynchron aufgerufen wird, wurde Ihr handler
bereits freigegeben.
Damit dies funktioniert, müssen Sie es irgendwo "durchhalten". Zum Beispiel.
class SomeClass {
let handler = APIHandler()
func someFunction(cache: Authentication.Response) {
handler.authenticate(with: .cache(cache)) { _ in }
}
}
Das bedeutet, dass handler
nicht freigegeben wird, bis Ihre SomeClass
Instanz es ist.
Vielen Dank, es wird jetzt "Failure(SwiftyInsta.GenericError.custom("Ungültige Antwort. 400"))" angezeigt. Dies ist mein viewController, könnten Sie mir bitte meine Fehler in diesem zeigen oder wenn Sie eine funktionierende Funktion zum Posten eines Bildes haben, das Sie einfach ausschneiden und einfügen können, das mir enorm helfen würde, ich habe keine Ahnung, wo das schief geht
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)
}) }
}
Ich habe eine neue Ausgabe für Ihre neue Ausnahme geöffnet.
Ich schaue mir das mal an, sobald ich Zeit habe :muscle: @trentona
Bitte beziehen Sie sich von nun an auf # 106.
Hilfreichster Kommentar
SwiftyInsta.GenericError.weakObjectReleased
wird normalerweise aufgerufen, wennAPIHandler
nicht stark referenziert ist.Wenn Ihr Beispiel so etwas bedeutet:
Sobald der Abschlusshandler asynchron aufgerufen wird, wurde Ihr
handler
bereits freigegeben.Damit dies funktioniert, müssen Sie es irgendwo "durchhalten". Zum Beispiel.
Das bedeutet, dass
handler
nicht freigegeben wird, bis IhreSomeClass
Instanz es ist.