{"id":3205,"date":"2021-06-11T23:22:18","date_gmt":"2021-06-11T17:22:18","guid":{"rendered":"https:\/\/touhidapps.com\/learn\/?p=3205"},"modified":"2024-04-07T11:07:45","modified_gmt":"2024-04-07T05:07:45","slug":"swift-weak-self","status":"publish","type":"post","link":"https:\/\/touhidapps.com\/learn\/swift-weak-self\/","title":{"rendered":"Swift [weak self], weak &#8211; \u09b8\u09c1\u0987\u09ab\u099f \u09b2\u09cd\u09af\u09be\u0999\u09cd\u0997\u09c1\u09df\u09c7\u099c\u09c7 weak self \u098f\u09ac\u0982 weak variable \u098f\u09b0 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0"},"content":{"rendered":"\n<p>weak self \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09be \u09b9\u09df \u09ae\u09c7\u09ae\u09cb\u09b0\u09bf \u09ae\u09cd\u09af\u09be\u09a8\u09c7\u099c\u09ae\u09c7\u09a8\u09cd\u099f\u09c7\u09b0 \u099c\u09a8\u09cd\u09af\u0964 \u098f\u0995\u099f\u09bf \u0985\u09ac\u099c\u09c7\u0995\u09cd\u099f \u0985\u09a8\u09cd\u09af \u0985\u09ac\u099c\u09c7\u0995\u09cd\u099f\u09c7\u09b0 \u09b0\u09c7\u09ab\u09be\u09b0\u09c7\u09a8\u09cd\u09b8 \u09a7\u09b0\u09c7 \u09b0\u09be\u0996\u09b2\u09c7 \u09aa\u09cd\u09af\u09be\u09b0\u09c7\u09a8\u09cd\u099f \u0985\u09ac\u099c\u09c7\u0995\u09cd\u099f \u09a1\u09bf\u098f\u09b2\u09cb\u0995\u09c7\u099f \u09ac\u09be \u09ae\u09c7\u09ae\u09cb\u09b0\u09bf \u09a5\u09c7\u0995\u09c7 \u09ae\u09c1\u099b\u09c7 \u0997\u09c7\u09b2\u09c7 \u09af\u09be\u09a4\u09c7 \u099a\u09be\u0987\u09b2\u09cd\u09a1 \u0985\u09ac\u099c\u09c7\u0995\u09cd\u099f\u09c7\u0993 \u09ae\u09c1\u099b\u09c7 \u09af\u09be\u09df \u0995\u09bf\u0982\u09ac\u09be \u099a\u09be\u0987\u09b2\u09cd\u09a1 \u0985\u09ac\u099c\u09c7\u0995\u09cd\u099f\u09c7\u09b0 \u099c\u09a8\u09cd\u09af \u09ae\u09c7\u09ae\u09cb\u09b0\u09bf \u09a6\u0996\u09b2 \u0995\u09b0\u09c7 \u09a8\u09be \u09b0\u09be\u0996\u09c7 \u09b8\u09c7 \u099c\u09a8\u09cd\u09af weak self \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09be \u09b9\u09df\u0964 \u098f\u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0\u09c7 self \u0985\u09aa\u09b6\u09a8\u09be\u09b2 \u09b9\u09df\u09c7 \u09af\u09be\u09df \u09a4\u09be\u0987 self \u09b0\u09c7\u09ab\u09be\u09b0\u09c7\u09a8\u09cd\u09b8\u09c7 \u09a8\u09be\u09b2 \u099a\u09c7\u0995 \u0995\u09bf\u0982\u09ac\u09be ? \u099a\u09bf\u09b9\u09cd\u09a8 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09a4\u09c7 \u09b9\u09ac\u09c7\u0964<\/p>\n\n\n\n<p>\u0995\u09cd\u09b2\u09cb\u099c\u09be\u09b0\u09c7\u09b0 \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0\u09c7 weak self \u098f\u09b0 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u09ac\u09c7\u09b6\u09bf \u09b9\u09df\u09c7 \u09a5\u09be\u0995\u09c7\u0964 \u098f\u099b\u09be\u09a1\u09bc\u09be\u0993 \u09a1\u09c7\u09b2\u09bf\u0997\u09c7\u099f \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0\u09c7\u09b0 \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0\u09c7\u09c7\u0993 \u098f\u09b0 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u09b0\u09df\u09c7\u099b\u09c7\u0964<\/p>\n\n\n\n<p><strong>\u098f\u09b2\u09be\u09b0\u09cd\u099f \u09a1\u09be\u09df\u09b2\u0997\u09c7\u09b0 \u0995\u09cd\u09b2\u09cb\u099c\u09be\u09b0\u09c7 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import UIKit\n\nclass ViewController: UIViewController {\n    \n    override func viewDidLoad() {\n        super.viewDidLoad()\n        \n        let alert = UIAlertController(title: \"My Title\",\n                                      message: \"Hello this is a message\",\n                                      preferredStyle: .alert)\n        alert.addAction(UIAlertAction(title: \"Done\",\n                                      style: .cancel,\n                                      handler: { <span class=\"has-inline-color has-vivid-red-color\">&#91;weak self]<\/span> _ in\n\/\/ Null check as self can be null here as we use weak self\n                                        guard let mSelf = self else { return }\n\/\/ as myFunction() calls from ViewController object which is self, if not use &#91;weak self] it will\n\/\/ keep a strong reference with ViewController and will not destroy after dismiss UIAlertController\n                                        mSelf.myFunction()\n                                        \n                                      }))\n\n        \n    } \/\/ viewDidLoad\n    \n    private func myFunction() {\n        \n    }\n\n}<\/code><\/pre>\n\n\n\n<p>\u0989\u09aa\u09b0\u09c7\u09b0 \u0995\u09cb\u09a1\u09c7 \u09a6\u09c7\u0996\u09a4\u09c7 \u09aa\u09be\u099a\u09cd\u099b\u09bf \u098f\u0995\u099f\u09bf \u098f\u09b2\u09be\u09b0\u09cd\u099f \u09a1\u09be\u09df\u09b2\u0997 viewDidLoad() \u098f\u09b0 \u09ad\u09bf\u09a4\u09b0 \u09b0\u09df\u09c7\u099b\u09c7\u0964 \u098f\u09b2\u09be\u09b0\u09cd\u099f \u09a1\u09be\u09df\u09b2\u0997 \u09af\u0996\u09a8 \u09a1\u09bf\u09b8\u09ae\u09bf\u09b8 \u09b9\u09ac\u09c7 \u09a4\u0996\u09a8 myFunction() \u0995\u09b2 \u09b9\u09ac\u09c7\u0964 myFunction() \u09b0\u09df\u09c7\u099b\u09c7 ViewController \u098f\u09b0 \u09ad\u09bf\u09a4\u09b0 \u09af\u09be \u098f\u09b2\u09be\u09b0\u09cd\u099f \u09a1\u09be\u09df\u09b2\u0997\u09c7\u09b0 \u09ad\u09bf\u09a4\u09b0\u09c7 self \u09a6\u09bf\u09df\u09c7 \u0995\u09b2 \u0995\u09b0\u09be \u09b9\u09df\u0964 <\/p>\n\n\n\n<p>\u09af\u0996\u09a8 \u098f\u09b2\u09be\u09b0\u09cd\u099f \u09a1\u09be\u09df\u09b2\u0997 \u09a1\u09bf\u09b8\u09ae\u09bf\u09b8 \u0995\u09b0\u09be \u09b9\u09ac\u09c7 \u09a4\u0996\u09a8 self \u098f\u09b0 \u099c\u09a8\u09cd\u09af \u09af\u09be\u09a4\u09c7 \u09ae\u09c7\u09ae\u09cb\u09b0\u09bf \u09a5\u09c7\u0995\u09c7 \u098f\u09b2\u09be\u09b0\u09cd\u099f \u09a1\u09be\u09df\u09b2\u0997 \u0985\u09ac\u099c\u09c7\u0995\u09cd\u099f \u09ae\u09c1\u099b\u09c7 \u09ac\u09be \u09a1\u09bf\u098f\u09b2\u09cb\u0995\u09c7\u099f \u09b9\u09df\u09c7 \u09af\u09c7\u09a4\u09c7 \u09ac\u09be\u09a7\u09be\u0997\u09cd\u09b0\u09b8\u09cd\u09a5 \u09a8\u09be \u09b9\u09df \u09b8\u09c7 \u099c\u09a8\u09cd\u09af weak self \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09be \u09b9\u09df\u09c7\u099b\u09c7\u0964 \u098f\u0996\u09a8 \u098f\u09b2\u09be\u09b0\u09cd\u099f \u09a1\u09be\u09df\u09b2\u0997 \u09a1\u09bf\u09b8\u09ae\u09bf\u09b8 \u09b9\u09b2\u09c7 \u098f\u09b2\u09be\u09b0\u09cd\u099f \u0985\u09ac\u099c\u09c7\u0995\u09cd\u099f \u09ae\u09c7\u09ae\u09cb\u09b0\u09bf \u09a5\u09c7\u0995\u09c7 \u09ae\u09c1\u099b\u09c7 \u09af\u09be\u09ac\u09c7\u0964<\/p>\n\n\n\n<p><strong>\u098f\u09ac\u09be\u09b0 \u09a8\u09bf\u099c\u09c7\u09b0 \u09a4\u09c8\u09b0\u09bf \u0995\u09cd\u09b2\u09cb\u099c\u09be\u09b0\u09c7 weak self \u098f\u09b0 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u09a6\u09c7\u0996\u09bf:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import UIKit\n\nclass ViewController: UIViewController {\n    \n    private var data: Data?\n    \n    override func viewDidLoad() {\n        super.viewDidLoad()\n        \n        getData(string: \"\") { <span class=\"has-inline-color has-vivid-red-color\">&#91;weak self]<\/span> (data) in\n            self?.data = data\n        }\n        \n    } \/\/ viewDidLoad\n    \n    private func getData(string: String, completion: ((Data?) -&gt; Void)) {\n        \n        completion(nil)\n        \n    }\n\n}<\/code><\/pre>\n\n\n\n<p>\u09b9\u09df\u09a4\u09cb \u0987\u09a8\u09cd\u099f\u09be\u09b0\u09a8\u09c7\u099f \u098f\u09aa\u09bf\u0986\u0987 \u0995\u09b2 \u0995\u09bf\u0982\u09ac\u09be \u09ac\u09a1\u09bc \u0985\u09aa\u09be\u09b0\u09c7\u09b6\u09a8 \u099a\u09be\u09b2\u09bf\u09df\u09c7 \u0995\u09cd\u09b2\u09cb\u099c\u09be\u09b0 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09c7 \u09a4\u09be\u09b0 \u09b0\u09c7\u099c\u09be\u09b2\u09cd\u099f \u09aa\u09c7\u09a4\u09c7 \u099a\u09be\u099a\u09cd\u099b\u09c7\u09a8\u0964 \u09a4\u0996\u09a8 \u09af\u09a6\u09bf \u098f\u09b0\u0995\u09ae \u0995\u09cd\u09b2\u09cb\u099c\u09be\u09b0\u09c7 self \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0\u09c7\u09b0 \u09aa\u09cd\u09b0\u09df\u09cb\u099c\u09a8 \u09b9\u09df \u09a4\u09ac\u09c7 weak self \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09b2\u09c7 \u0995\u09cd\u09b2\u09cb\u099c\u09be\u09b0\u09c7\u09b0 \u0995\u09be\u099c \u09b6\u09c7\u09b7 \u09b9\u09b2\u09c7 \u09ae\u09c7\u09ae\u09cb\u09b0\u09bf \u09a5\u09c7\u0995\u09c7 \u09ae\u09c1\u099b\u09c7 \u09af\u09be\u09ac\u09c7 \u098f\u09a4\u09c7 \u09ae\u09c7\u09ae\u09cb\u09b0\u09bf \u0996\u09be\u09b2\u09bf \u09b9\u09df\u09c7 \u098f\u09cd\u09af\u09be\u09aa\u09c7\u09b0 \u09aa\u09be\u09b0\u09ab\u09b0\u09ae\u09c7\u09a8\u09cd\u09b8 \u0995\u09ae\u09bf\u09df\u09c7 \u09a6\u09bf\u09ac\u09c7 \u09a8\u09be\u0964<\/p>\n\n\n\n<p><strong>\u09a1\u09c7\u09b2\u09bf\u0997\u09c7\u099f\u09c7\u09b0 \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0\u09c7 weak \u098f\u09b0 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u09a6\u09c7\u0996\u09bf:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import UIKit\n\nprotocol MyViewControllerDelegate: AnyObject {\n    func myAction()\n}\n\nclass ViewController: UIViewController {\n\n    <span class=\"has-inline-color has-vivid-red-color\">weak<\/span> var delegate: MyViewControllerDelegate?\n\n    override func viewDidLoad() {\n        super.viewDidLoad()\n\n        \n    } \/\/ viewDidLoad\n    \n\n} \/\/ ViewController\n\n\/\/ Another ViewController or class\nclass AnotherVC: UIViewController, MyViewControllerDelegate {\n    \n    private let vc = ViewController()\n    \n    override func viewDidLoad() {\n        super.viewDidLoad()\n\n        \/\/ If this class destroy then MyViewControllerDelegate will destroy too if use weak\n        vc.delegate = <span class=\"has-inline-color has-vivid-red-color\">self<\/span>\n        \n    } \/\/ viewDidLoad\n    \n    func myAction() {\n        \/\/\n    }\n    \n}<\/code><\/pre>\n\n\n\n<p>\u098f\u0996\u09be\u09a8\u09c7 \u09a1\u09c7\u09b2\u09bf\u0997\u09c7\u099f\u09c7\u09b0 \u09b0\u09c7\u09ab\u09be\u09b0\u09c7\u09a8\u09cd\u09b8\u09c7 \u098f\u09cd\u09af\u09be\u09b8\u09be\u0987\u09a8 \u0995\u09b0\u09be \u09b9\u09df\u09c7\u099b\u09c7 self \u098f\u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0\u09c7 weak \u09ad\u09c7\u09b0\u09bf\u09df\u09c7\u09ac\u09b2 \u09b9\u09bf\u09b8\u09c7\u09ac\u09c7 \u09a1\u09c7\u09b2\u09bf\u0997\u09c7\u099f \u0985\u09ac\u099c\u09c7\u0995\u09cd\u099f \u09a8\u09c7\u09df\u09be \u09b9\u09df\u09c7\u099b\u09c7\u0964<\/p>\n\n\n\n<p>\u09af\u0996\u09a8 \u0986\u09ae\u09b0\u09be \u09ac\u09a1\u09bc \u0995\u09cb\u09a8 \u09aa\u09cd\u09b0\u099c\u09c7\u0995\u09cd\u099f \u0995\u09b0\u09ac\u09cb \u09a4\u0996\u09a8 \u098f\u0987\u09b0\u0995\u09ae \u09ad\u09be\u09ac\u09c7 \u09ae\u09c7\u09ae\u09cb\u09b0\u09bf \u09ae\u09cd\u09af\u09be\u09a8\u09c7\u099c\u09ae\u09c7\u09a8\u09cd\u099f \u0995\u09b0\u09be \u0989\u099a\u09bf\u09a4 \u098f\u09a4\u09c7 \u098f\u09cd\u09af\u09be\u09aa\u09c7\u09b0 \u09aa\u09be\u09b0\u09ab\u09b0\u09ae\u09c7\u09a8\u09cd\u09b8 \u09a0\u09bf\u0995 \u09a5\u09be\u0995\u09ac\u09c7\u0964 \u099b\u09cb\u099f \u09aa\u09cd\u09b0\u099c\u09c7\u0995\u09cd\u099f\u09c7\u09b0 \u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0\u09c7 \u09a4\u09c7\u09ae\u09a8 \u0995\u09cb\u09a8 \u09b8\u09ae\u09b8\u09cd\u09af\u09be \u09a8\u09c7\u0987 \u09a4\u09ac\u09c7 \u09ac\u09bf\u09b7\u09df\u099f\u09be\u09a4\u09c7 \u0985\u09ad\u09cd\u09af\u09b8\u09cd\u09a4 \u09a5\u09be\u0995\u09be\u09b0 \u099c\u09a8\u09cd\u09af \u09b9\u09b2\u09c7\u0993 \u098f\u0987\u09a7\u09b0\u09a3\u09c7\u09b0 \u09ac\u09bf\u09b7\u09df\u0997\u09c1\u09b2\u09cb \u0985\u09a8\u09c1\u09b8\u09b0\u09a8 \u0995\u09b0\u09be \u0989\u099a\u09bf\u09a4 \u09af\u09be\u09a4\u09c7 \u09ac\u09a1\u09bc \u09aa\u09cd\u09b0\u099c\u09c7\u0995\u09cd\u099f \u0995\u09b0\u09be\u09b0 \u09b8\u09ae\u09df \u09ad\u09c1\u09b2\u09c7 \u09a8\u09be \u09af\u09be\u0987\u0964<\/p>\n","protected":false},"excerpt":{"rendered":"<p>weak self \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09be \u09b9\u09df \u09ae\u09c7\u09ae\u09cb\u09b0\u09bf \u09ae\u09cd\u09af\u09be\u09a8\u09c7\u099c\u09ae\u09c7\u09a8\u09cd\u099f\u09c7\u09b0 \u099c\u09a8\u09cd\u09af\u0964 \u098f\u0995\u099f\u09bf \u0985\u09ac\u099c\u09c7\u0995\u09cd\u099f \u0985\u09a8\u09cd\u09af \u0985\u09ac\u099c\u09c7\u0995\u09cd\u099f\u09c7\u09b0 \u09b0\u09c7\u09ab\u09be\u09b0\u09c7\u09a8\u09cd\u09b8 \u09a7\u09b0\u09c7 \u09b0\u09be\u0996\u09b2\u09c7 \u09aa\u09cd\u09af\u09be\u09b0\u09c7\u09a8\u09cd\u099f \u0985\u09ac\u099c\u09c7\u0995\u09cd\u099f \u09a1\u09bf\u098f\u09b2\u09cb\u0995\u09c7\u099f \u09ac\u09be \u09ae\u09c7\u09ae\u09cb\u09b0\u09bf \u09a5\u09c7\u0995\u09c7 \u09ae\u09c1\u099b\u09c7 \u0997\u09c7\u09b2\u09c7 \u09af\u09be\u09a4\u09c7 \u099a\u09be\u0987\u09b2\u09cd\u09a1 \u0985\u09ac\u099c\u09c7\u0995\u09cd\u099f\u09c7\u0993 \u09ae\u09c1\u099b\u09c7 \u09af\u09be\u09df \u0995\u09bf\u0982\u09ac\u09be \u099a\u09be\u0987\u09b2\u09cd\u09a1 \u0985\u09ac\u099c\u09c7\u0995\u09cd\u099f\u09c7\u09b0 \u099c\u09a8\u09cd\u09af \u09ae\u09c7\u09ae\u09cb\u09b0\u09bf \u09a6\u0996\u09b2 \u0995\u09b0\u09c7 \u09a8\u09be \u09b0\u09be\u0996\u09c7 \u09b8\u09c7 \u099c\u09a8\u09cd\u09af weak self \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09be \u09b9\u09df\u0964 \u098f\u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0\u09c7 self \u0985\u09aa\u09b6\u09a8\u09be\u09b2 \u09b9\u09df\u09c7 \u09af\u09be\u09df \u09a4\u09be\u0987 self \u09b0\u09c7\u09ab\u09be\u09b0\u09c7\u09a8\u09cd\u09b8\u09c7 \u09a8\u09be\u09b2 \u099a\u09c7\u0995 \u0995\u09bf\u0982\u09ac\u09be [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[181,182],"tags":[178,183,187],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v15.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Swift [weak self], weak - \u09b8\u09c1\u0987\u09ab\u099f \u09b2\u09cd\u09af\u09be\u0999\u09cd\u0997\u09c1\u09df\u09c7\u099c\u09c7 weak self \u098f\u09ac\u0982 weak variable \u098f\u09b0 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 - Touhid Apps!<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/touhidapps.com\/learn\/swift-weak-self\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Swift [weak self], weak - \u09b8\u09c1\u0987\u09ab\u099f \u09b2\u09cd\u09af\u09be\u0999\u09cd\u0997\u09c1\u09df\u09c7\u099c\u09c7 weak self \u098f\u09ac\u0982 weak variable \u098f\u09b0 \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 - Touhid Apps!\" \/>\n<meta property=\"og:description\" content=\"weak self \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09be \u09b9\u09df \u09ae\u09c7\u09ae\u09cb\u09b0\u09bf \u09ae\u09cd\u09af\u09be\u09a8\u09c7\u099c\u09ae\u09c7\u09a8\u09cd\u099f\u09c7\u09b0 \u099c\u09a8\u09cd\u09af\u0964 \u098f\u0995\u099f\u09bf \u0985\u09ac\u099c\u09c7\u0995\u09cd\u099f \u0985\u09a8\u09cd\u09af \u0985\u09ac\u099c\u09c7\u0995\u09cd\u099f\u09c7\u09b0 \u09b0\u09c7\u09ab\u09be\u09b0\u09c7\u09a8\u09cd\u09b8 \u09a7\u09b0\u09c7 \u09b0\u09be\u0996\u09b2\u09c7 \u09aa\u09cd\u09af\u09be\u09b0\u09c7\u09a8\u09cd\u099f \u0985\u09ac\u099c\u09c7\u0995\u09cd\u099f \u09a1\u09bf\u098f\u09b2\u09cb\u0995\u09c7\u099f \u09ac\u09be \u09ae\u09c7\u09ae\u09cb\u09b0\u09bf \u09a5\u09c7\u0995\u09c7 \u09ae\u09c1\u099b\u09c7 \u0997\u09c7\u09b2\u09c7 \u09af\u09be\u09a4\u09c7 \u099a\u09be\u0987\u09b2\u09cd\u09a1 \u0985\u09ac\u099c\u09c7\u0995\u09cd\u099f\u09c7\u0993 \u09ae\u09c1\u099b\u09c7 \u09af\u09be\u09df \u0995\u09bf\u0982\u09ac\u09be \u099a\u09be\u0987\u09b2\u09cd\u09a1 \u0985\u09ac\u099c\u09c7\u0995\u09cd\u099f\u09c7\u09b0 \u099c\u09a8\u09cd\u09af \u09ae\u09c7\u09ae\u09cb\u09b0\u09bf \u09a6\u0996\u09b2 \u0995\u09b0\u09c7 \u09a8\u09be \u09b0\u09be\u0996\u09c7 \u09b8\u09c7 \u099c\u09a8\u09cd\u09af weak self \u09ac\u09cd\u09af\u09ac\u09b9\u09be\u09b0 \u0995\u09b0\u09be \u09b9\u09df\u0964 \u098f\u0995\u09cd\u09b7\u09c7\u09a4\u09cd\u09b0\u09c7 self \u0985\u09aa\u09b6\u09a8\u09be\u09b2 \u09b9\u09df\u09c7 \u09af\u09be\u09df \u09a4\u09be\u0987 self \u09b0\u09c7\u09ab\u09be\u09b0\u09c7\u09a8\u09cd\u09b8\u09c7 \u09a8\u09be\u09b2 \u099a\u09c7\u0995 \u0995\u09bf\u0982\u09ac\u09be [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/touhidapps.com\/learn\/swift-weak-self\/\" \/>\n<meta property=\"og:site_name\" content=\"Touhid Apps!\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/touhidapps\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/touhid1010\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-11T17:22:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-07T05:07:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/touhidapps.com\/learn\/wp-content\/uploads\/2020\/09\/kotlin-compose-multiplatform-bangla-android-course-cover.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@#\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data1\" content=\"1 minute\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/touhidapps.com\/learn\/#organization\",\"name\":\"Touhid Apps Learn\",\"url\":\"https:\/\/touhidapps.com\/learn\/\",\"sameAs\":[\"https:\/\/www.facebook.com\/touhidapps\",\"https:\/\/www.linkedin.com\/company\/touhid-apps\",\"https:\/\/www.youtube.com\/touhidapps\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/touhidapps.com\/learn\/#logo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/touhidapps.com\/learn\/wp-content\/uploads\/2020\/09\/kotlin-compose-multiplatform-bangla-android-course-cover.jpg\",\"width\":1920,\"height\":1080,\"caption\":\"Touhid Apps Learn\"},\"image\":{\"@id\":\"https:\/\/touhidapps.com\/learn\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/touhidapps.com\/learn\/#website\",\"url\":\"https:\/\/touhidapps.com\/learn\/\",\"name\":\"Touhid Apps!\",\"description\":\"Makes Apps Development Fun | Bangla Android Kotlin Tutorial Courses\",\"publisher\":{\"@id\":\"https:\/\/touhidapps.com\/learn\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/touhidapps.com\/learn\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/touhidapps.com\/learn\/swift-weak-self\/#webpage\",\"url\":\"https:\/\/touhidapps.com\/learn\/swift-weak-self\/\",\"name\":\"Swift [weak self], weak - \\u09b8\\u09c1\\u0987\\u09ab\\u099f \\u09b2\\u09cd\\u09af\\u09be\\u0999\\u09cd\\u0997\\u09c1\\u09df\\u09c7\\u099c\\u09c7 weak self \\u098f\\u09ac\\u0982 weak variable \\u098f\\u09b0 \\u09ac\\u09cd\\u09af\\u09ac\\u09b9\\u09be\\u09b0 - Touhid Apps!\",\"isPartOf\":{\"@id\":\"https:\/\/touhidapps.com\/learn\/#website\"},\"datePublished\":\"2021-06-11T17:22:18+00:00\",\"dateModified\":\"2024-04-07T05:07:45+00:00\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/touhidapps.com\/learn\/swift-weak-self\/\"]}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/touhidapps.com\/learn\/swift-weak-self\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/touhidapps.com\/learn\/swift-weak-self\/#webpage\"},\"author\":{\"@id\":\"https:\/\/touhidapps.com\/learn\/#\/schema\/person\/fa5754d3b194eade4772b66d9c310115\"},\"headline\":\"Swift [weak self], weak &#8211; \\u09b8\\u09c1\\u0987\\u09ab\\u099f \\u09b2\\u09cd\\u09af\\u09be\\u0999\\u09cd\\u0997\\u09c1\\u09df\\u09c7\\u099c\\u09c7 weak self \\u098f\\u09ac\\u0982 weak variable \\u098f\\u09b0 \\u09ac\\u09cd\\u09af\\u09ac\\u09b9\\u09be\\u09b0\",\"datePublished\":\"2021-06-11T17:22:18+00:00\",\"dateModified\":\"2024-04-07T05:07:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/touhidapps.com\/learn\/swift-weak-self\/#webpage\"},\"publisher\":{\"@id\":\"https:\/\/touhidapps.com\/learn\/#organization\"},\"keywords\":\"iOS,swift,swift development\",\"articleSection\":\"iOS SDK,Swift\",\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/touhidapps.com\/learn\/#\/schema\/person\/fa5754d3b194eade4772b66d9c310115\",\"name\":\"Md. Touhidul Islam\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/touhidapps.com\/learn\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/touhidapps.com\/learn\/wp-content\/uploads\/nsl_avatars\/6d841e66bc35036a9a24410322a30c0a.jpg\",\"caption\":\"Md. Touhidul Islam\"},\"description\":\"Android | iOS | Kotlin | Swift -- \\u09e8\\u09e6\\u09e7\\u09ec \\u09b8\\u09be\\u09b2 \\u09a5\\u09c7\\u0995\\u09c7 \\u09a8\\u09cd\\u09af\\u09be\\u099f\\u09bf\\u09ad \\u098f\\u09a8\\u09cd\\u09a1\\u09cd\\u09b0\\u09df\\u09c7\\u09a1 \\u0993 \\u09a8\\u09cd\\u09af\\u09be\\u099f\\u09bf\\u09ad \\u0986\\u0987\\u0993\\u098f\\u09b8 \\u09a6\\u09c1\\u099f\\u09bf \\u09aa\\u09cd\\u09b2\\u09be\\u099f\\u09ab\\u09b0\\u09cd\\u09ae\\u09c7\\u0987 \\u0995\\u09be\\u099c \\u0995\\u09b0\\u099b\\u09bf\\u0964 \\u09e9 \\u099f\\u09bf \\u09a6\\u09c7\\u09b6\\u09bf \\u0993 \\u09e8 \\u099f\\u09bf \\u09ae\\u09be\\u09b2\\u09cd\\u099f\\u09bf\\u09a8\\u09c7\\u09b6\\u09a8\\u09be\\u09b2 \\u0995\\u09cb\\u09ae\\u09cd\\u09aa\\u09be\\u09a8\\u09bf\\u09a4\\u09c7 \\u0995\\u09be\\u099c \\u0995\\u09b0\\u09be \\u09b9\\u09df\\u09c7\\u099b\\u09c7\\u0964 \\u098f\\u0996\\u09a8 \\u0986\\u099b\\u09bf \\u09ae\\u09be\\u09b2\\u09df\\u09c7\\u09b6\\u09bf\\u09df\\u09be\\u09b0 \\u0995\\u09c1\\u09df\\u09be\\u09b2\\u09be\\u09b2\\u09be\\u09ae\\u09aa\\u09c1\\u09b0\\u09c7\\u0964 \\u098f\\u0996\\u09be\\u09a8\\u09c7 \\u098f\\u0995\\u099f\\u09bf \\u09ae\\u09be\\u09b2\\u09cd\\u099f\\u09bf-\\u09a8\\u09cd\\u09af\\u09be\\u09b6\\u09a8\\u09be\\u09b2 \\u09ac\\u09cd\\u09af\\u09be\\u0982\\u0995\\u09c7\\u09b0 \\u09ae\\u09cb\\u09ac\\u09be\\u0987\\u09b2 \\u098f\\u09cd\\u09af\\u09be\\u09aa \\u09a1\\u09c7\\u09ad\\u09b2\\u09aa\\u09ae\\u09c7\\u09a8\\u09cd\\u099f \\u09a8\\u09bf\\u09df\\u09c7 \\u0995\\u09be\\u099c \\u0995\\u09b0\\u099b\\u09bf\\u0964 \\u09a6\\u09c7\\u09b6\\u09c7 \\u09a5\\u09be\\u0995\\u09a4\\u09c7 \\u099c\\u09ac\\u09c7\\u09b0 \\u09aa\\u09be\\u09b6\\u09be\\u09aa\\u09be\\u09b6\\u09bf \\u09a2\\u09be\\u0995\\u09be\\u09b0 \\u09e8\\u099f\\u09bf \\u09ac\\u09c3\\u09b9\\u09a4\\u09cd\\u09a4\\u09ae \\u099f\\u09cd\\u09b0\\u09c7\\u09a8\\u09bf\\u0982 \\u09b8\\u09c7\\u09a8\\u09cd\\u099f\\u09be\\u09b0\\u09c7 \\u09aa\\u09be\\u09b0\\u09cd\\u099f-\\u099f\\u09be\\u0987\\u09ae \\u098f\\u09a8\\u09cd\\u09a1\\u09cd\\u09b0\\u09df\\u09c7\\u09a1 \\u099f\\u09cd\\u09b0\\u09c7\\u0987\\u09a8\\u09be\\u09b0 \\u09b9\\u09bf\\u09b8\\u09c7\\u09ac\\u09c7 \\u0995\\u09be\\u099c \\u0995\\u09b0\\u09be \\u09b9\\u09df\\u09c7\\u099b\\u09c7\\u0964 \\u09a4\\u09a5\\u09cd\\u09af\\u09aa\\u09cd\\u09b0\\u09af\\u09c1\\u0995\\u09cd\\u09a4\\u09bf\\u09a4\\u09c7 \\u09ae\\u09be\\u09b8\\u09cd\\u099f\\u09be\\u09b0\\u09cd\\u09b8 \\u0995\\u09b0\\u09c7\\u099b\\u09bf \\u099c\\u09be\\u09b9\\u09be\\u0999\\u09cd\\u0997\\u09c0\\u09b0\\u09a8\\u0997\\u09b0 \\u09ac\\u09bf\\u09b6\\u09cd\\u09ac\\u09ac\\u09bf\\u09a6\\u09cd\\u09af\\u09be\\u09b2\\u09df\\u09c7\\u09b0 IIT \\u09a5\\u09c7\\u0995\\u09c7\\u0964 \\u0997\\u09cd\\u09b0\\u09be\\u09ae\\u09c0\\u09a8\\u09ab\\u09cb\\u09a8 \\u0995\\u09cb\\u09a1 \\u09ae\\u09be\\u09b8\\u09cd\\u099f\\u09be\\u09b0 \\u09b9\\u09cd\\u09af\\u09be\\u0995\\u09be\\u09a5\\u09a8\\u09c7 (\\u09e8\\u09e6\\u09e8\\u09e6) \\u098f\\u09a8\\u09cd\\u09a1\\u09cd\\u09b0\\u09df\\u09c7\\u09a1\\u09c7 \\u09b0\\u09be\\u09a8\\u09be\\u09b0\\u0986\\u09aa \\u099b\\u09bf\\u09b2\\u09be\\u09ae\\u0964 \\u0995\\u09be\\u099c \\u0995\\u09b0\\u09c7\\u099b\\u09bf \\u09ab\\u09bf\\u09a8\\u099f\\u09c7\\u0995, \\u09b0\\u09be\\u0987\\u09a1 \\u09b6\\u09c7\\u09df\\u09be\\u09b0\\u09bf\\u0982, \\u09b6\\u09b0\\u09cd\\u099f \\u09ad\\u09bf\\u09a1\\u09bf\\u0993 \\u09b6\\u09c7\\u09df\\u09be\\u09b0\\u09bf\\u0982, \\u09b2\\u09be\\u0987\\u09ad \\u09ac\\u09cd\\u09b0\\u09a1\\u0995\\u09be\\u09b8\\u09cd\\u099f\\u09bf\\u0982, \\u09a8\\u09bf\\u0989\\u099c \\u0987\\u09a4\\u09cd\\u09af\\u09be\\u09a6\\u09bf \\u09ac\\u09bf\\u09ad\\u09bf\\u09a8\\u09cd\\u09a8 \\u09a7\\u09b0\\u09a8\\u09c7\\u09b0 \\u098f\\u09cd\\u09af\\u09be\\u09aa \\u09a8\\u09bf\\u09df\\u09c7\\u0964 \\u0995\\u09ae\\u09bf\\u0989\\u09a8\\u09bf\\u099f\\u09bf\\u09b0 \\u099c\\u09a8\\u09cd\\u09af \\u0985\\u09a8\\u09c7\\u0995 \\u0986\\u0997\\u09c7 \\u09a5\\u09c7\\u0995\\u09c7\\u0987 \\u0987\\u0989\\u099f\\u09bf\\u0989\\u09ac\\u09c7 \\u09ad\\u09bf\\u09a1\\u09bf\\u0993 \\u09a6\\u09bf\\u09df\\u09c7 \\u0986\\u09b8\\u099b\\u09bf \\u09af\\u09be\\u09b0 \\u09ae\\u09be\\u09a7\\u09cd\\u09af\\u09ae\\u09c7 \\u0986\\u09ae\\u09be\\u09b0 \\u09ac\\u09be\\u09b8\\u09cd\\u09a4\\u09ac \\u0985\\u09ad\\u09bf\\u099c\\u09cd\\u099e\\u09a4\\u09be\\u0997\\u09c1\\u09b2\\u09cb \\u09b8\\u0995\\u09b2\\u09c7\\u09b0 \\u09b8\\u09be\\u09a5\\u09c7 \\u09b6\\u09c7\\u09df\\u09be\\u09b0 \\u0995\\u09b0\\u099b\\u09bf\\u0964\",\"sameAs\":[\"https:\/\/touhidapps.com\",\"https:\/\/www.facebook.com\/touhid1010\",\"#\",\"https:\/\/www.linkedin.com\/in\/touhid1010\",\"#\",\"https:\/\/twitter.com\/#\",\"#\",\"https:\/\/www.youtube.com\/touhidapps\",\"#\",\"#\",\"#\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/touhidapps.com\/learn\/wp-json\/wp\/v2\/posts\/3205"}],"collection":[{"href":"https:\/\/touhidapps.com\/learn\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/touhidapps.com\/learn\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/touhidapps.com\/learn\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/touhidapps.com\/learn\/wp-json\/wp\/v2\/comments?post=3205"}],"version-history":[{"count":12,"href":"https:\/\/touhidapps.com\/learn\/wp-json\/wp\/v2\/posts\/3205\/revisions"}],"predecessor-version":[{"id":3217,"href":"https:\/\/touhidapps.com\/learn\/wp-json\/wp\/v2\/posts\/3205\/revisions\/3217"}],"wp:attachment":[{"href":"https:\/\/touhidapps.com\/learn\/wp-json\/wp\/v2\/media?parent=3205"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/touhidapps.com\/learn\/wp-json\/wp\/v2\/categories?post=3205"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/touhidapps.com\/learn\/wp-json\/wp\/v2\/tags?post=3205"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}