草庐IT

self-referencing

全部标签

swift - 关闭 : Use unresolved identifier 'self'

我正在解析Swift语言指南教程(来自AppleiOS开发库),并为每一章创建一个单独的swift文件。在每个文件中,我创建了多个函数,并在其中隔离了它们提供的代码片段。一切正常,直到测试闭包的强引用循环。出于某种原因,如果包含闭包(用于计算属性)的类是在函数内部声明的,则闭包无法看到封闭类的“self”引用。任何想法为什么?如果该类未在函数内声明,则它可以正常工作。funcstrongRefClosure(){classHTMLElement{letname:Stringlettext:String?lazyvarasHTML:()->String={iflettext=self.t

macos - self.window 总是 nil

我目前正在尝试显示一个带有窗口Controller的窗口。这就是我所拥有的:NSWindow子类importCocoaimportCoreLocationclassTweetWindow:NSWindow{varlocationManager:CLLocationManager!vargeoCoder:CLGeocoder!@IBActionfunctweetButtonPressed(sender:NSButton){}funcinitialize(){self.titleVisibility=NSWindowTitleVisibility.Hidden;self.locationM

ios - swift 。在初始化所有存储的属性之前在方法调用中使用 'self'

这个问题在这里已经有了答案:CallinginstancemethodduringinitializationinSwift(7个答案)关闭6年前。我有课classChartView:UIView{class:DotView{letcircleView1:UIViewletcircleView2:UIViewinit(view:UIView){self.view=viewself.circleView1=self.buildCircle(somerecthere)self.circleView2=self.buildCircle(somerecthere)funcbuildCircle

swift - 闭包中的弱 self 和后果示例

我对stackoverflow和苹果关于ARC和Weak/Unownedself(Shallwealwaysuse[unownedself]insideclosureinSwift)的文档做了一些研究。我了解了关于强引用循环的基本概念,以及它是如何不好的,因为它们会导致内存泄漏。但是,我想弄明白什么时候在闭包中使用Wea​​k/Unownedself。而不是进入“理论”,我认为如果有人可以根据我所拥有的最后三个案例友好地解释它们,那将真的很有帮助。我的问题是是否可以将weakself放入其中(我认为对于第二种情况没有必要,因为我在某处看到UIView与self无关?但是,如果我将wea

ios - 在闭包之外使用 "self"是否有实际好处?

我注意到业内一些人会使用self关键字,即使没有明确要求(即在闭包之外)。示例:importUIKitimportMapViewimportCoreLocationclassviewController:UIViewController,MKMapViewDelegate,CLLocationDelegate{letmapView=MKMapView()letlocationManager=CLLocationManager()overridefuncviewDidLoad(){super.viewDidLoad()self.mapView.delegate=selfself.mapV

swift - self 协议(protocol)的行为

我最近在读Protocols,GenericTypeConstraintsandArraysinSwift.我的问题涉及博客中的以下两个示例:代码:protocolMyProtocol1{varmyValue:Self{get}}letarray:[MyProtocol1]=[]//Error.产生错误:Protocol'MyProtocol1'canonlybeusedasagenericconstraintbecauseithasSelforassociatedtyperequirements.这是预料之中的,并且已经有几个关于该主题的SO问题。但是,通过将myValue更改为函数

xcode - 无法分配给属性 : 'self' is immutable

我正在创建一个页面View应用程序。我已经为ViewController编写了代码:importUIKitclassViewController:UIViewController{varpageViewController:UIPageViewController!varpageTitles:NSArray!varpageImages:NSArray!@IBActionfuncrestartAction(sender:AnyObject){}overridefuncviewDidLoad(){super.viewDidLoad()self.pageTitles=NSArray(obje

swift - 引用 [weak self] 作为自己? animateWithDuration 内部导致崩溃

如果我在闭包上声明[weakself]并在UIView.animateWithDuration中将self引用为self?>应用会崩溃:someFunc(){[weakself](success)->VoidinUIView.animateWithDuration(0.25){self?.someView.alpha=1;}}使用消息发送到释放的实例但如果我有选择地提前解包self它不会someFunc(){[weakself](success)->Voidinifletweakself=self{UIView.animateWithDuration(0.25){weakself.so

ios - 在 dispatch_async 中正确引用 self

如何在swift闭包中正确引用self?dispatch_async(dispatch_get_main_queue()){self.popViewControllerAnimated(true)}我得到错误:无法将表达式的类型“Void”转换为类型“UIViewController!”我随机尝试过:dispatch_async(dispatch_get_main_queue()){()self.popViewControllerAnimated(true)}它奏效了。不确定extra()的作用!有人愿意解释吗?谢谢! 最佳答案 这

ios - 将成员初始化为类函数导致 'self' used in method call错误

我有一个指向其中一个类函数的类属性。但是,当我尝试使用其中一个函数初始化此变量时,出现以下错误:'self'usedinmethodcallbeforeallstoredpropertiesareinitialized.我能够为这些函数初始化任何其他变量,但错误使它听起来像我正在调用函数,即使我不是。importUIKitimportAudioToolboxclassBeatMaker{//iPhone7andupusebeatfunction,iPhone6susebeatFallbacklethapticFunction:()->()letimpactGenerator=UIImp