草庐IT

L_OBJC_SELECTOR_REFERENCES

全部标签

objective-c - 如何在 Swift2 中使用 ObjC block 类型定义(尤其是当包含 BOOL 参数时)

在转向Xcode7(beta5)和Swift2之后,我在我的Swift代码中收到关于Bool(或BOOL/ObjCBool​​)使用Objective-Ctypedef从闭包传递(或传入)闭包的值。typedefvoid(^completion_success_block_t)(BOOLsuccess);当我在Swift类中使用此类型时,出现编译器错误。funcdoSomething(completionBlock:completion_success_block_t){doSomethingElse{successinifsuccess==true{}//(1)error1letfo

objective-c - UIActivityType – 属性不能是@objc 覆盖,因为它的类型不能在 Objective-C 中表示

在更新到Xcode8Beta6时,我看到引入了一个新类型:UIActivityType所以我尝试在我的UIActivity自定义类中做这样的事情:classFooActivity:UIActivity{funcretrieveActivityType()->String{return"someStringDescribingActivityType"}overrideopenvaractivityType:UIActivityType?{@objc(retrieveActivityType)get{returnUIActivityType(rawValue:"someStringDes

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

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

swift - 在 Swift 4 模式下使用 Swift 3 @objc 推理是否被弃用? (再次)

我已经测试了TheuseofSwift3@objcinferenceinSwift4modeisdeprecated?中的所有建议我的问题是:我可以以任何方式设置它,但在我本应使用推理(可能不知道)的地方没有得到任何特定错误。所以它仍然说:“在Swift4模式下使用Swift3@objc推理已被弃用。请解决已弃用的@objc推理警告,在启用“使用已弃用的Swift3@objc推理”日志记录的情况下测试您的代码,然后通过更改“Swift3@objcInference“projectUITests”目标的build设置为“默认”。这两个测试也以红色字体显示。如果我将@objc推断切换为开/

ios - ObjC <-> Swift 桥接和工厂方法

我有一些我想在Swift中使用的Objective-C类。由于超出此问题范围的原因,我的类init方法被标记为不可用。相反,有一个工厂方法。这是我的类的简化形式:@interfaceMyClass:NSObject+(instancetype)myClass;-(instancetype)initNS_UNAVAILABLE;@end当我在Swift中使用它时,我可以执行letx=MyClass()这很好,因为根据桥接规则,编译器会尝试将工厂方法映射到普通初始化器。问题是调用了“不可用”init方法而不是工厂方法。如何让Swift使用工厂方法?额外的实验:我确定NS_UNAVAILAB

ios - 如何从 iOS (Swift/ObjC) 中的动画 UIView 创建视频?

我环顾四周,找不到任何解决方案...我的目标是通过具有一些动画subview的UIViewController在iOS上创建视频。有些人从这个ViewController逐帧创建图像,例如20秒,然后使用Apple的AVFoundation将它们组合成视频。我认为这不是最佳解决方案,不仅因为性能,还因为想要渲染视频的最终用户必须等待至少20秒才能捕获每一帧(假设视频仅包含1帧/秒)。是否有任何其他可能的解决方案来实现这一点——也许在后台并且速度更快? 最佳答案 简短的回答是否定的,您将无法创建比iOS中可用的有损硬件h.264视频编

引用 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