草庐IT

Selector

全部标签

swift - Swift 中#function 和#selector 的不同结果

我试图检测是否在Swift中使用#function调用了一个方法,但它返回的结果与#selector的描述不同。这是一个工作代码:classSampleClass{varlatestMethodCall:Selector?@objcfuncfirstMethod(){latestMethodCall=#function}@objcfuncsecondMethod(someParameters:Int,anotherParameter:Int){latestMethodCall=#function}funcisEqualToLatestMethod(anotherMethodanothe

引用 Objective-C 方法的 Swift #selector

在swift2.2版本中可以得出结论,将可以通过#selector引用Objective-C方法。letsel=#selector(UIView.insertSubview(_:at:))//producestheSelector"insertSubview:atIndex:"所以之前我们使用像简单字符串这样的方法名称:"doBangBang"并调用它Selector("doBangBang")现在我们应该像引用一样使用它到方法MyClass.doBangBang()并使用关键字#selector(MyClass.doBangBang())?此功能是否弃用了Selector?除了减少使

swift - "The Selector keyword has been deprecated in future versions of Swift"如何在没有编辑菜单的对话框中创建键盘快捷键

Cut/Copy/Paste/SelectAll/Undo/Redo的Swift2.1解决方案是here,但这现在会在Xcode7.3/Swift2.2中产生6个警告。Selector关键字在Swift的future版本中已被弃用。这是一个部分解决方案,它编译时没有针对剪切/复制/粘贴/全选的警告:ifNSApp.sendAction(Selector("cut:"),to:nil,from:self){returntrue}成为ifNSApp.sendAction(#selector(NSText.cut(_:)),to:nil,from:self){returntrue}不过Und

ios - Swift 2.2 #selector for delegate/protocol 编译错误

这是我的代码:protocolCustomControlDelegate:AnyObject{funcbuttonTapped(sender:AnyObject)}classCustomControl:UIView{vardelegate:CustomControlDelegate?{didSet{aButton.addTarget(delegate,action:"buttonTapped:"),forControlEvents:UIControlEvents.TouchUpInside)}}从Swift2.2开始,我收到一个要求使用#selector的编译错误。但在这种情况下,我不

swift - Xcode 7.3, swift 2.2 : default initialiser selector (new compile-time check)

我正在将一些选择器迁移到Swift2.2,但我遇到了其中一个问题:代码:lethook=ARTRealtimePresenceQuery.testSuite_injectIntoClassMethod("init"){//DefaultinitialiserpresenceQueryWasCreated=true}现在,Xcode想帮助我进行转换,但方式不对:代码:lethook=ARTRealtimePresenceQuery.testSuite_injectIntoClassMethod(#selector(_NSEnumeratorType.init)){//Defaultini

swift - #selector 在 Swift 4 中不起作用?

这个问题在这里已经有了答案:HowcanIdealwith@objcinferencedeprecationwith#selector()inSwift4?(5个答案)关闭5年前。我正在尝试使用Swift4在Xcode9中设置一个计时器,并且我有一个名为:hello的函数。所以在计时器代码中,我像以前一样添加了#selector(hello()),但是这次它会继续崩溃并让我在hello函数前面添加@objc。有谁知道那是什么意思?谢谢!

ios - 如何在#selector 中添加默认参数值

这个问题在这里已经有了答案:Addstaticparameterto#selectorinSwift(3个答案)关闭5年前。我有一个函数:funchandleChange(isShown:Bool){ifisShown{//dosomethingA}else{//dosomethingB}}如果我想要一个UISlider添加上面的操作,isShown默认为false,我将调用方法handleChange(isShown:Bool)与另一个函数中的true。错误代码如下:slider.addTarget(self,action:#selector(handleValue(isShown:

ios - 如何在没有发件人的情况下将目标添加到 UIButton

我有一个函数...funcMyFunc(_sender:AnyObject){letn=sender.tag!//dostuffwith'n'}我在创建NewButton时连接...NewButton.addTarget(self,action:#selector(Main.MyFunc(_:)),for:.touchUpInside)我想在代码的其他区域调用MyFunc而无需发送者。是否可以在不使用发件人的情况下将.addTarget添加到按钮?比如....NewButton.addTarget(self,action:#selector(Main.MyFunc(n:5)),for:

IOS - DispatchQueue.main.asyncAfter(deadline : . now()) 和 perform(_:with:afterDelay:) 之间的区别,延迟为 0

我意识到使用DispatchQueue.main.asyncAfter(deadline:.now())和perform(_:with:afterDelay:0)是有区别的当主队列“忙”时。请注意,在我的情况下,perform(_:with:afterDelay:)是从主队列调用的。看起来DispatchQueue.main.asyncAfter(deadline:.now())在下一个运行循环中立即执行任务而不关心主队列但是perform(_:with:afterDelay:)0延迟将等待并仅在主队列“空闲”时执行任务(可能不会在下一个运行循环中调用)。根据Apple文档perfor

ios - 来自 UIBarButtonItem 的 "unrecognized selector sent to instance"

我知道这个问题已经被问过很多次了。但我似乎无法克服这个错误。我使用ObjectiveC在我的应用程序的早期版本中运行它。下面的两个方法都在同一个UIViewController中。ViewController还作为RootViewController的引用,是UINavigationController的一部分。funcloadEditView(sender:AnyObject,animated:Bool=true){vareditViewController:EditViewController=EditViewController()//setsomestuffupself.nav