草庐IT

Self-Supervised

全部标签

Swift Closures - 将 self 捕捉为弱者

我正在尝试解决Swift中基于闭包的强引用循环。在下面的代码中,对象由拥有的ViewController保留。ProgressHUD是一个UIView,它也由拥有的ViewController保留。ProgressHUD每次调用完成处理程序时都会泄漏。使用新的闭包捕获功能时,将self声明为weak或unowned并不能解决内存泄漏问题。object.setCompletionHandler{[weakself](error)->Voidinif(!error){self?.tableView.reloadData()}self?.progressHUD?.hide(false)}但是

swift 2.0 : use of self in method call before stored properties are initialised

这周末才开始研究Swift。我正在为我的类(class)创建一个id以快速比较对象。我想要一个不可变的id,所以应该使用let。使用var并将id初始化为""将修复"在初始化存储属性之前在方法调用中使用self"但当然它是可变的。我见过的与此类似的所有其他问题都是关于父类(superclass)/调用super.init,我没有。很郁闷,不知道为什么不直截了当。classMagicCard{letid:Stringletname:StringletmanaCost:Intletdescription:Stringletattack:Intletdefence:Intinit(name:

swift 2.0 : use of self in method call before stored properties are initialised

这周末才开始研究Swift。我正在为我的类(class)创建一个id以快速比较对象。我想要一个不可变的id,所以应该使用let。使用var并将id初始化为""将修复"在初始化存储属性之前在方法调用中使用self"但当然它是可变的。我见过的与此类似的所有其他问题都是关于父类(superclass)/调用super.init,我没有。很郁闷,不知道为什么不直截了当。classMagicCard{letid:Stringletname:StringletmanaCost:Intletdescription:Stringletattack:Intletdefence:Intinit(name:

swift - Structs 上的协议(protocol)扩展导致编译错误 'Self' 约束为非协议(protocol)类型

我正在尝试将受限协议(protocol)扩展应用到结构(Swift2.0)并收到以下编译器错误:type'Self'constrainedtonon-protocoltype'Foo'structFoo:MyProtocol{letmyVar:Stringinit(myVar:String){self.myVar=myVar}}protocolMyProtocol{funcbar()}extensionMyProtocolwhereSelf:Foo{funcbar(){print(myVar)}}letfoo=Foo(myVar:"Hello,Protocol")foo.bar()我可

swift - Structs 上的协议(protocol)扩展导致编译错误 'Self' 约束为非协议(protocol)类型

我正在尝试将受限协议(protocol)扩展应用到结构(Swift2.0)并收到以下编译器错误:type'Self'constrainedtonon-protocoltype'Foo'structFoo:MyProtocol{letmyVar:Stringinit(myVar:String){self.myVar=myVar}}protocolMyProtocol{funcbar()}extensionMyProtocolwhereSelf:Foo{funcbar(){print(myVar)}}letfoo=Foo(myVar:"Hello,Protocol")foo.bar()我可

ios - 为什么我会使用 unowned self?

以下模式在iOS应用中经常发生:classMyViewController:UIViewController{letmyModel=MyModel()overridefuncviewDidLoad(){super.viewDidLoad()myModel.foo(){[***]in//useselfhere}}}classMyModel{publicfuncfoo(complete:()->Void){//dosomethingcomplete()}}共识是使用[unownedself]或[weakself]代替[***],unowned当您可以保证self在完成时不会为nil并且当您

ios - 为什么我会使用 unowned self?

以下模式在iOS应用中经常发生:classMyViewController:UIViewController{letmyModel=MyModel()overridefuncviewDidLoad(){super.viewDidLoad()myModel.foo(){[***]in//useselfhere}}}classMyModel{publicfuncfoo(complete:()->Void){//dosomethingcomplete()}}共识是使用[unownedself]或[weakself]代替[***],unowned当您可以保证self在完成时不会为nil并且当您

generics - 使用 Self 作为通用类型

Self可以用作方法的返回类型:funcdoSomething()->Self{}是否可以以某种方式将Self用作像这样的泛型类型?funcdoSomething()->Wrapper{}示例如果我可以将ChristmasPresent子类化并让它有一个wrapped函数返回一个WrappedPresent并且泛型设置为子类是什么,那就太好了。classChristmasPresent{funcwrapped()->WrappedPresent{returnWrappedPresent(present:self)}}classWrappedPresent{varpresent:Tini

generics - 使用 Self 作为通用类型

Self可以用作方法的返回类型:funcdoSomething()->Self{}是否可以以某种方式将Self用作像这样的泛型类型?funcdoSomething()->Wrapper{}示例如果我可以将ChristmasPresent子类化并让它有一个wrapped函数返回一个WrappedPresent并且泛型设置为子类是什么,那就太好了。classChristmasPresent{funcwrapped()->WrappedPresent{returnWrappedPresent(present:self)}}classWrappedPresent{varpresent:Tini

ios - 属性 'self.*' 未在 super.init 调用时初始化

我刚刚将我的xcode更新到6.3.1。问题是我从Swift1.2开始收到这个奇怪的错误消息。我收到了这种错误信息/Users/MNurdin/Documents/iOS/xxxxx/Library/SideBar.swift:32:15:Property'self.originView'notinitializedatsuper.initcall/Users/MNurdin/Documents/iOS/xxxxx/Library/SideBar.swift:38:20:Immutablevalue'self.originView'mayonlybeinitializedonce关于这