草庐IT

swift - 为什么我不能在 self 是一个类的协议(protocol)扩展中更改变量?

我很好奇为什么这不起作用:publicprotocolMyProtocol{vari:Int{getset}}publicprotocolMyProtocol2:class,MyProtocol{}publicextensionMyProtocol2whereSelf:AnyObject{funca(){i=0错误:Cannotassigntoproperty:'self'isimmutable为什么?只有类可以采用MyProtocol2。如果我在MyProtocol后面添加:class声明,它就可以工作。我不明白为什么它在子协议(protocol)上不起作用。

swift - 为什么我不能在 self 是一个类的协议(protocol)扩展中更改变量?

我很好奇为什么这不起作用:publicprotocolMyProtocol{vari:Int{getset}}publicprotocolMyProtocol2:class,MyProtocol{}publicextensionMyProtocol2whereSelf:AnyObject{funca(){i=0错误:Cannotassigntoproperty:'self'isimmutable为什么?只有类可以采用MyProtocol2。如果我在MyProtocol后面添加:class声明,它就可以工作。我不明白为什么它在子协议(protocol)上不起作用。

swift - 如何在 Swift 中将 'addTarget' 转换为 UILabel

我正在尝试在Swift中添加标签,这些标签是在一个循环中添加的。然后,我想在添加时为每个事件添加一个“TapGesture”事件。它有效,但问题是调用的函数从标签中获取数据以在单击时使用,但此时标签已被重新定义并且它从最后添加的标签中获取数据,而不是单击的标签中的数据。我怎样才能让每一个都独一无二?self.label.attributedText=self.myMutableStringlettapGesture=UITapGestureRecognizer(target:self,action:handleTap(label))self.label.userInteractionE

swift - 如何在 Swift 中将 'addTarget' 转换为 UILabel

我正在尝试在Swift中添加标签,这些标签是在一个循环中添加的。然后,我想在添加时为每个事件添加一个“TapGesture”事件。它有效,但问题是调用的函数从标签中获取数据以在单击时使用,但此时标签已被重新定义并且它从最后添加的标签中获取数据,而不是单击的标签中的数据。我怎样才能让每一个都独一无二?self.label.attributedText=self.myMutableStringlettapGesture=UITapGestureRecognizer(target:self,action:handleTap(label))self.label.userInteractionE

swift - 闭包的强引用循环?

SwiftClosure在引用self时会有很强的引用循环,就像这个例子:classTest{varname="Hello"funcdoSomething(){{()->Voidinself.name="otherName"}()}}在前面的例子中,我创建了一个强引用循环,所以我必须修复它:classTest{varname="Hello"funcdoSomething(){{[unownedself]()->Voidinself.name="otherName"}()}}问题:如果我在闭包中引用self,我是否必须始终使用unownedself还是在某些情况下我必须使用weaksel

swift - 闭包的强引用循环?

SwiftClosure在引用self时会有很强的引用循环,就像这个例子:classTest{varname="Hello"funcdoSomething(){{()->Voidinself.name="otherName"}()}}在前面的例子中,我创建了一个强引用循环,所以我必须修复它:classTest{varname="Hello"funcdoSomething(){{[unownedself]()->Voidinself.name="otherName"}()}}问题:如果我在闭包中引用self,我是否必须始终使用unownedself还是在某些情况下我必须使用weaksel

ios - NSTimer 不调用方法

这个问题在这里已经有了答案:NSTimertimerWithTimeInterval:notworking(4个答案)关闭9年前。我有一个NSTimer,它应该每秒调用一个方法,但它似乎根本没有调用它。这是我声明计时器的方式:[NSTimertimerWithTimeInterval:1.0target:selfselector:@selector(fadeManager:)userInfo:nilrepeats:YES];这是它调用的方法:-(void)fadeManager:(NSTimer*)timer{NSLog(@"IT'SWORKING!");self.playHead+=

ios - NSTimer 不调用方法

这个问题在这里已经有了答案:NSTimertimerWithTimeInterval:notworking(4个答案)关闭9年前。我有一个NSTimer,它应该每秒调用一个方法,但它似乎根本没有调用它。这是我声明计时器的方式:[NSTimertimerWithTimeInterval:1.0target:selfselector:@selector(fadeManager:)userInfo:nilrepeats:YES];这是它调用的方法:-(void)fadeManager:(NSTimer*)timer{NSLog(@"IT'SWORKING!");self.playHead+=

ios - 滚动 UITableView 时仪器显示 "_NSContiguousstring"内存泄漏

我有一个包含10个元素的UItableView。我打开Instruments来捕获内存泄漏,当我滚动tableView时,它开始出现内存泄漏。在Instruments中,我试图找到导致泄漏的原因但无法弄清楚,它说“_NScontiguousstring”代表整个泄漏。我找到了一些针对Objective-C的解决方案,他们检查“CellForRowAt”函数中的单元格是否为零。我不认为它对Swift有用,但我尝试了并且正如预期的那样它不起作用。MemoryLeakUITableView我的问题是什么会导致这种内存泄漏?我测试的设备;11.3.1上的iPhoneXiPhone611.2.5

ios - 滚动 UITableView 时仪器显示 "_NSContiguousstring"内存泄漏

我有一个包含10个元素的UItableView。我打开Instruments来捕获内存泄漏,当我滚动tableView时,它开始出现内存泄漏。在Instruments中,我试图找到导致泄漏的原因但无法弄清楚,它说“_NScontiguousstring”代表整个泄漏。我找到了一些针对Objective-C的解决方案,他们检查“CellForRowAt”函数中的单元格是否为零。我不认为它对Swift有用,但我尝试了并且正如预期的那样它不起作用。MemoryLeakUITableView我的问题是什么会导致这种内存泄漏?我测试的设备;11.3.1上的iPhoneXiPhone611.2.5