рдореБрдЭреЗ рдкреЛрд╕реНрдЯ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдХрдард┐рдирд╛рдИ рд╣реЛ рд░рд╣реА рд╣реИред рдореБрдЭреЗ рдЬреЛ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ рд╡рд╣ рд╣реИ "рд╡рд┐рдлрд▓рддрд╛ (рд╕реНрд╡рд┐рдлреНрдЯреАрдЗрдВрд╕реНрдЯрд╛ред рдЬреЗрдиреЗрд░рд┐рдХ рдПрд░рд░.рд╡реАрдХрдСрдмреНрдЬреЗрдХреНрдЯ рд░рд┐рд▓реАрдЬ)
рдореИрдВ рдХреНрдпрд╛ рдЧрд▓рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ? рдореЗрд░реА рдорд╛рдлрд╝реА рдЕрдЧрд░ рдпрд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЧрд▓рддреА рд╣реИред рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдкрд░ рд╕рднреА рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдЦреЛрдЬ рдХреА рдФрд░ рдпрд╣ рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореБрдЭреЗ рдорд┐рд▓рд╛ рд╣реИ, рдпрд╣ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЙрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрддрд╛ рд╣реИред
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
рдХреЛ рдЖрдорддреМрд░ рдкрд░ рддрдм рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм APIHandler
рдХрд╛ рдордЬрдмреВрдд рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЕрд░реНрде рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реИ:
func someFunction(cache: Authentication.Response) {
let handler = APIHandler()
handler.authenticate(with: .cache(cache)) { _ in
}
}
рдПрдХ рдмрд╛рд░ рдкреВрд░реНрдгрддрд╛ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдкрдХрд╛ handler
рдкрд╣рд▓реЗ рд╣реА рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред
рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ рдХрд╣реАрдВ "рдЬрд╛рд░реА" рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред
class SomeClass {
let handler = APIHandler()
func someFunction(cache: Authentication.Response) {
handler.authenticate(with: .cache(cache)) { _ in }
}
}
рдорддрд▓рдм handler
рдЬрдм рддрдХ рдЖрдкрдХрд╛ SomeClass
рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛, рддрдм рддрдХ рдЙрд╕реЗ рдбрд┐рд▓реАрдХреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдзрдиреНрдпрд╡рд╛рдж, рдЕрдм рдЗрд╕рдХреА "рд╡рд┐рдлрд▓рддрд╛ (рд╕реНрд╡рд┐рдлреНрдЯреАрдЗрдВрд╕реНрдЯрд╛.рдЬреЗрдиреЗрд░рд┐рдХ рдПрд░рд░.рдХрд╕реНрдЯрдо ("рдЕрдорд╛рдиреНрдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ред 400")) рд╣реЛ рд░рд╣реА рд╣реИред рдпрд╣ рдореЗрд░рд╛ рд╡реНрдпреВ рдХрдВрдЯреНрд░реЛрд▓рд░ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдЗрд╕рдореЗрдВ рдореЗрд░реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЫрд╡рд┐ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдХрд╛рд░реНрдп рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдореБрдЭреЗ рдХрд╛рдЯ рдФрд░ рдкреЗрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рдмрд╣реБрдд рдорджрдж рдХрд░реЗрдЧрд╛, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рдЧрд▓рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ
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)
}) }
}
рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдирдП рдЕрдкрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓рд╛ рд╣реИред
рдЬреИрд╕реЗ рд╣реА рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рд╕рдордп рд╣реЛрдЧрд╛ рдореИрдВ рдЗрд╕реЗ рджреЗрдЦ рд▓реВрдВрдЧрд╛: рдорд╛рдВрд╕рдкреЗрд╢реА: @trentona
рдХреГрдкрдпрд╛ рдЕрдм рд╕реЗ #106 рдХрд╛ рд╕рдВрджрд░реНрдн рд▓реЗрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
SwiftyInsta.GenericError.weakObjectReleased
рдХреЛ рдЖрдорддреМрд░ рдкрд░ рддрдм рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдмAPIHandler
рдХрд╛ рдордЬрдмреВрдд рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИредрдпрджрд┐ рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЕрд░реНрде рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реИ:
рдПрдХ рдмрд╛рд░ рдкреВрд░реНрдгрддрд╛ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдкрдХрд╛
handler
рдкрд╣рд▓реЗ рд╣реА рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИредрдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ рдХрд╣реАрдВ "рдЬрд╛рд░реА" рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдПред
рдорддрд▓рдм
handler
рдЬрдм рддрдХ рдЖрдкрдХрд╛SomeClass
рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛, рддрдм рддрдХ рдЙрд╕реЗ рдбрд┐рд▓реАрдХреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред