草庐IT

objc-protocol

全部标签

ios - 某些 iOS 框架如何使用不带 @objc 的可选来定义 Swift 协议(protocol)?

如标题中所述,一些标准Swift协议(protocol)无需使用@objc即可声明可选要求。例如:publicprotocolUIScrollViewDelegate:NSObjectProtocol{@available(iOS2.0,*)optionalpublicfuncscrollViewDidScroll(_scrollView:UIScrollView)//anyoffsetchanges@available(iOS3.2,*)optionalpublicfuncscrollViewDidZoom(_scrollView:UIScrollView)//anyzoomscal

ios - 迪尔德 : Symbol not found: _OBJC_CLASS_$_GULObjectSwizzler

我在cocoapods中使用这些框架:pod'Firebase/Core'pod'Firebase/Messaging'pod'Firebase/DynamicLinks'pod'Firebase/Auth'pod'Firebase/Performance'pod'Fabric'pod'Crashlytics'和最新的GoogleSignIn但我手动将其添加到我的项目中pod更新后,当我运行我的应用程序时出现错误:dyld:Symbolnotfound:_OBJC_CLASS_$_GULObjectSwizzler引用自:/var/containers/Bundle/Applicati

ios - 编译 Objective C++ 文件时找不到 'CrashlyticsDelegate' 的协议(protocol)声明

示例项目:https://github.com/mike011/CrashlyticsDelegateExample重现步骤:创建一个新的Swift项目通过Podfile添加Crashlytics并确保使用use_frameworks!已上市创建以下扩展:extensionAppDelegate:CrashlyticsDelegate{funccrashlyticsDidDetectReport(forLastExecutionreport:CLSReport){}}添加一个ObjectiveC++文件。将以下导入添加到新文件#import#import"CrashlyticsSamp

ios - Swift 通用 TableView 数据源和委托(delegate),协议(protocol)支持 NSManagedObjects,无法获取实体属性,运行时错误

问题***Terminatingappduetouncaughtexception'NSUnknownKeyException',reason:'[valueForUndefinedKey:]:thisclassisnotkeyvaluecoding-compliantforthekeyactive.'感谢@GrahamPerksanswer对此SOquestion,我在我的代码中插入了一个异常断点,现在在这一行暂停执行...staticvarentityActive:Bool{returnentity.value(forKey:"active")as!Bool//这显然需要进一步解释

ios - Swift 4.2 委托(delegate)和协议(protocol)不起作用

我有UIViewController(profileViewController),其中有collectionView,collectionView有headerCell其中有segmentedControl,当segmentedControl值改变时,我想老虎delegate方法但它不起作用,在这里是代码,这是collectioviewheadercell和协议(protocol)的类。importUIKit//ProtocolprotocolheaderCellSegmentedDelegate{funcchangeTabe(whichOne:String)}//HeaderCel

ios - 仅在单元测试中对协议(protocol)的冗余一致性

我的应用程序中有一个Objective-C类(MyClass)。在Swift文件中,我添加了一个扩展,使其符合NSFilePromiseProviderDelegate协议(protocol)/接口(interface):extensionMyClass:NSFilePromiseProviderDelegate{publicfuncfilePromiseProvider(_filePromiseProvider:NSFilePromiseProvider,fileNameForTypefileType:String)->String{...}publicfuncfilePromise

ios - 带有 Swift 5.0 编译器的 Xcode 10.2 - 协议(protocol)继承问题

当前的Xcode版本(10.2)存在一个大问题。有一个具有以下签名的BasicViewController类:classBasicViewController:UIViewController,UITableViewDataSource,UITableViewDelegate然后我们有另一个类似ExampleViewController:BasicViewController的类,它有一些额外的逻辑。现在到了棘手的部分......我们在不同的模拟器和设备上构建和运行该应用程序,一切正常。然后我们存档应用程序,突然didSelectRow不再被触发。项目的深度清理和清理使我们能够重现问题

ios - 将扩展标记为 @objc 仅用于单元测试

我在objective-c中声明了一个类,如下所示:@interfacePerson:NSObject@property(nonatomic,readonly)NSString*firstName;@property(nonatomic,readonly)NSString*lastName;@end我有一个在Swift中声明的扩展,用于获取Person的全名:extensionPerson{varfullName:String{return"\(firstName)\(lastName)"}}我想编写单元测试,在这里我想使用扩展名测试此人的全名。因此,我创建了一个模拟子类,并覆盖了fu

objective-c - 使用 LLVM 生成 ObjC 代码

我一直在读this关于使用LLVM在ObjectiveC中实现快速转发的文章,并有做类似事情的想法。是否可以使用LLVM生成ObjectiveC代码来扩展现有类?我有一个类定义。现在我想使用LLVM向该类添加一条新消息。那可能吗? 最佳答案 好吧,您可以使用运行时库、添加方法等来完成此操作....RuntimeReference看看...BOOLclass_addMethod(Classcls,SELname,IMPimp,constchar*types) 关于objective-c-使

ios - 找不到 NSFetchedResultsController 的协议(protocol)声明

我的应用程序发生了一些奇怪的事情。前几天晚上一切正常,但现在当我加载xcode时,我在NSFetchedResultsControllerDelegate的application.h文件中出现“无法找到NSFetchedResultsController的协议(protocol)声明”错误#import#import#import#import@classDBRestClient;@interfaceDartScorerAppDelegate:NSObject{我没有更改此代码中的任何内容。我试过清理、取消链接框架并重新导入、取出对所有代码文件的引用并重新导入它们,但没有任何方法清除此