草庐IT

self-referencing

全部标签

swift - 在初始化所有存储的属性之前使用“self”

我正在处理learn-swiftplayground并在学习语言时将其升级到Swift2.0。以下代码(可能适用于Swift的早期版本)现在会生成两个错误:“在初始化所有存储的属性之前使用了‘self’”和“在初始化之前使用了常量‘self.capitalCity’”classCountry{letname:StringletcapitalCity:City!init(name:String,capitalName:String){self.name=nameself.capitalCity=City(name:capitalName,country:self)}}classCity{

swift - 在初始化所有存储的属性之前使用“self”

我正在处理learn-swiftplayground并在学习语言时将其升级到Swift2.0。以下代码(可能适用于Swift的早期版本)现在会生成两个错误:“在初始化所有存储的属性之前使用了‘self’”和“在初始化之前使用了常量‘self.capitalCity’”classCountry{letname:StringletcapitalCity:City!init(name:String,capitalName:String){self.name=nameself.capitalCity=City(name:capitalName,country:self)}}classCity{

swift - RXSwift 闭包中的“[weak self]”

我需要在RXSwiftsubscribeNext闭包中使用[weakself]吗?我有代码:searchController.searchBar.rx_text.throttle(0.2,scheduler:MainScheduler.instance).subscribeNext{searchTextinself.viewModel.searchForLocation(searchText)}.addDisposableTo(DisposelBag.sharedDisposelBag.disposeBag)我是否需要修改它以便在闭包的开头有一个[weakself]捕获列表?像这样:s

swift - RXSwift 闭包中的“[weak self]”

我需要在RXSwiftsubscribeNext闭包中使用[weakself]吗?我有代码:searchController.searchBar.rx_text.throttle(0.2,scheduler:MainScheduler.instance).subscribeNext{searchTextinself.viewModel.searchForLocation(searchText)}.addDisposableTo(DisposelBag.sharedDisposelBag.disposeBag)我是否需要修改它以便在闭包的开头有一个[weakself]捕获列表?像这样:s

ios - "self"在 Swift 中有什么用?

我是Swift的新手,我想知道self的用途和原因。我在类和结构中看到过它,但我真的没有发现它们是必要的,甚至没有必要在我的代码中提及它们。它们的用途是什么?为什么?什么情况下需要用到?我已经阅读了很多关于这个问题的问题和答案,但没有一个能完全回答我的问题,他们总是倾向于将它与我不熟悉的Java中的this进行比较无论如何。 最佳答案 是的,它与Java中的this和Objective-C中的self相同,但是对于Swift,仅当您需要时才需要self从闭包中调用属性或方法,或在代码中区分属性名称,例如初始化程序。因此,您可以安全地

ios - "self"在 Swift 中有什么用?

我是Swift的新手,我想知道self的用途和原因。我在类和结构中看到过它,但我真的没有发现它们是必要的,甚至没有必要在我的代码中提及它们。它们的用途是什么?为什么?什么情况下需要用到?我已经阅读了很多关于这个问题的问题和答案,但没有一个能完全回答我的问题,他们总是倾向于将它与我不熟悉的Java中的this进行比较无论如何。 最佳答案 是的,它与Java中的this和Objective-C中的self相同,但是对于Swift,仅当您需要时才需要self从闭包中调用属性或方法,或在代码中区分属性名称,例如初始化程序。因此,您可以安全地

ios - 如何正确处理带有参数的 Swift block 中的 Weak Self

在我的TextViewTableViewCell中,我有一个用于跟踪block的变量和一个用于传入和分配block的配置方法。这是我的TextViewTableViewCell类:////TextViewTableViewCell.swift//importUIKitclassTextViewTableViewCell:UITableViewCell,UITextViewDelegate{@IBOutletvartextView:UITextViewvaronTextViewEditClosure:((text:String)->Void)?funcconfigure(#text:St

ios - 如何正确处理带有参数的 Swift block 中的 Weak Self

在我的TextViewTableViewCell中,我有一个用于跟踪block的变量和一个用于传入和分配block的配置方法。这是我的TextViewTableViewCell类:////TextViewTableViewCell.swift//importUIKitclassTextViewTableViewCell:UITableViewCell,UITextViewDelegate{@IBOutletvartextView:UITextViewvaronTextViewEditClosure:((text:String)->Void)?funcconfigure(#text:St

swift - 我们应该总是在 Swift 的闭包中使用 [unowned self] 吗?

在WWDC2014session403IntermediateSwift和transcript,有如下幻灯片演讲者在那种情况下说,如果我们不在那里使用[unownedself],就会发生内存泄漏。这是否意味着我们应该始终在闭包中使用[unownedself]?关于line64ofViewController.swiftoftheSwiftWeatherapp,我不使用[unownedself]。但是我通过使用一些@IBOutlet来更新UI,例如self.temperature和self.loadingIndicator。这可能没问题,因为我定义的所有@IBOutlet都是weak。但

swift - 我们应该总是在 Swift 的闭包中使用 [unowned self] 吗?

在WWDC2014session403IntermediateSwift和transcript,有如下幻灯片演讲者在那种情况下说,如果我们不在那里使用[unownedself],就会发生内存泄漏。这是否意味着我们应该始终在闭包中使用[unownedself]?关于line64ofViewController.swiftoftheSwiftWeatherapp,我不使用[unownedself]。但是我通过使用一些@IBOutlet来更新UI,例如self.temperature和self.loadingIndicator。这可能没问题,因为我定义的所有@IBOutlet都是weak。但