草庐IT

self-referencing

全部标签

swift - 错误 "Redundant constraint ' self ' : 'AnyObject' "- where is the `AnyObject` ?

我在开发时发现了一条奇怪的Swift编译器消息(我使用的是Swift4.1):protocolFoo:classwhereSelf:NSObject{//(1)//Redundantconstraint'Self':'AnyObject'}这里发生了什么?首先,这不是多余的。当我写protocolFoo:class{}//(2)我有一个任何对象都可能遵守的协议(protocol),甚至不是从NSObject派生的对象。但我可以创建弱引用:weakvarf:Foo?没问题。另一方面,当我写的时候protocolFoowhereSelf:NSObject{}//(3)我有一个无法生成弱引用

ios - 如果我使用单例网络服务发出网络请求,是否需要使用 [weak self]?

假设我有一个使用Alamofire的SessionManager的网络单例,如下所示:导入AlamofireclassNetwork{staticletshared=Network()privateinit(){}privatevarsessionManager:SessionManager={letconfiguration=URLSessionConfiguration.defaultconfiguration.httpAdditionalHeaders=SessionManager.defaultHTTPHeadersreturnSessionManager(configurat

swift - [unowned self] 是什么意思,有什么好处?

我正在尝试集成Face/TouchID登录,我在Apple的文档中看到了[unownedself],在一个闭包内。那是什么,有什么好处?示例代码:letcontext=LAContext()varerror:NSError?ifcontext.canEvaluatePolicy(.deviceOwnerAuthenticationWithBiometrics,error:&error){letreason="Identifyyourself!"context.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics,localize

swift - Swift 3 中的 Int 和 Self.Index.Distance 冲突

这个问题在这里已经有了答案:Shufflearrayswift3(4个答案)关闭6年前。我有:extensionMutableCollectionwhereIndex==Int{//shuffleelementsofselfinplacemutatingfuncshuffleInPlace(){ifcount我收到错误:BinaryoperatorBinaryoperator'..有谁知道如何解决这个问题?

ios - 在 willSet 中捕获 `self`

如果我有一个CollectionView委托(delegate)助手类,其属性如下所示:weakvardelegate:UICollectionViewDelegate?{willSet{self.collectionView?.delegate=newValue}}self是否会被捕获到willSetblock中?与其他积木不同,您不能在willset积木上执行[unownedself]或[weakself]。在我有collectionView?.delegate=和self.collectionView?.delegate=的情况下,deinit总是被调用,向我表明它不会在sett

ios - 在不调用 self.dismiss ViewController 的情况下关闭 View Controller 的替代方法

是否可以在不调用self.dismissViewControllerAnimated的情况下关闭(并释放)ViewController(最好在Swift中)?我试过下面的方法,并没有真正做到:letloginVC=self.storyboard?.instantiateViewControllerWithIdentifier("LoginVC")as!LoginVCself.presentViewController(loginVC,animated:true){//self.removeFromParentViewController()self.tabBarController!.

ios - 错误 : Use of 'self' in property access 'texture' before super. init 初始化自身

我是swift的新手,我正在尝试通过以下方式学习swift创建一个简单的纸牌游戏。我从视频中输入了完全相同的代码。但是xcode显示错误“在super.init初始化self之前在属性访问‘texture’中使用‘self’”感谢您的帮助!importSpriteKitclassCard:SKSpriteNode{varrank:Intvarsuit:StringvarimageNameUp:StringvartextureUp:SKTexturevartextureDown:SKTextureinit(rank:Int,suit:String,faceUp:Bool){self.ra

ios - 冗余约束 'Self' : 'AnyObject'

我有这个协议(protocol):protocolContainer:classwhereSelf:UIViewController{varcontainerView:UIView!{get}varcurrentChild:UIViewController?{getset}funcremove(childviewController:UIViewController)funcadd(childviewController:UIViewController)funcreplaceCurrentViewController(withnewChild:UIViewController)}我遇

swift - 错误 : Cannot assign to '...' in 'self'

我有这个代码importUIKitclassSliderControllerView:UIView{privatelettype:ControlType!privateletlabel:UILabel!privateletslider:UISlider!privateweakvardelegate:SliderControllerDelegate?privateletdefaults:SliderDefaults!convenienceinit(type:ControlType,defaults:SliderDefaults,delegate:SliderControllerDeleg

swift - 始终对 Swift 单例使用 [unowned self] 安全吗?

由于共享的单例实例将始终存在,我们能否在该单例类的所有闭包中安全地使用[unownedself]? 最佳答案 当然,这是安全的。但这不是一个好的理由。使用弱引用还是强引用应该根据你所写的函数中的内存管理特性而定。例如,如果一个闭包被对象强引用,那么闭包应该捕获对该对象的弱引用;这是安全的,因为没有其他人引用闭包,所以它只能在主对象还活着的时候执行,等等。如果没有保留周期,闭包会被提供给一个单独的API,这样它就不会被绑定(bind)到主对象的生命周期,那么闭包应该对主对象有强引用。这个推理同样适用于单例和非单例。