草庐IT

self-modifying

全部标签

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

swift - “self”在所有成员初始化之前被闭包捕获

好吧,下面是我的代码:importUIKitimportForecastIOclassWeather{vartemp:Floatvarcondition:Stringvarwind:Floatvarprecip:Floatinit(){DarkSkyClient(apiKey:"").getForecast(latitude:Utils().getLat(),longitude:Utils().getLong()){resultinswitchresult{case.success(letcurrentForecast,_):self.temp=(currentForecast.cur

swift - 内部闭包的捕获列表是否需要将 `self` 重新声明为 `weak` 或 `unowned`?

如果我有一个闭包传递给这样的函数:someFunctionWithTrailingClosure{[weakself]inanotherFunctionWithTrailingClosure{[weakself]inself?.doSomething()}}如果我在someFunctionWithTrailingClosure的捕获列表中将self声明为[weakself]而没有在捕获列表中再次将其重新声明为weakanotherFunctionWithTrailingClosureself已经变成了Optional类型,但它是否也变成了weak引用?谢谢!

ios - 在 Swift 1.2 中将 self 作为参数传递给 init 方法

以下类有一个“let”属性声明为隐式解包变量。这以前适用于Xcode6.2:classSubView:UIView{letpandGestureRecognizer:UIPanGestureRecognizer!requiredinit(coderaDecoder:NSCoder){super.init(coder:aDecoder)self.pandGestureRecognizer=UIPanGestureRecognizer(target:self,action:"panAction:")}funcpanAction(gesture:UIPanGestureRecognizer)

swift - 在 Swift 的类扩展函数中使用 'self'

我希望能够从Nib中提取UIView子类的实例。我希望能够调用MyCustomView.instantiateFromNib()并拥有MyCustomView的实例。我几乎准备好通过桥接头移植我拥有的工作Objective-C代码,但我想我会先尝试惯用的方法。那是两个小时前。extensionUIView{classfuncinstantiateFromNib()->Self?{lettopLevelObjects=NSBundle.mainBundle().loadNibNamed("CustomViews",owner:nil,options:nil)fortopLevelObje

ios - 如何在一个方法中重新加载viewDidLoad,而不是再次调用如[self viewDidLoad];

我想在方法中重新加载ViewdidLoad但现在想再次调用[selfviewDidLoad];这可能吗? 最佳答案 不是调用viewDidLoad:而是创建另一个方法(newMethod)并将其中需要调用的所有代码从-(void)viewDidLoad{[superviewDidLoad];[selfnewMethod];}然后从您要调用viewDidLoad:的代码中调用[selfnewMethod];快速版本funcviewDidLoad(){super.viewDidLoad()self.newMethod()}然后从您要调用