草庐IT

SMB1Protocol

全部标签

objective-c - 实现 Objective-C 协议(protocol)的 Swift 泛型类

我的意图是在Swift中创建一个符合Objective-C协议(protocol)的泛型类:类是:classBaseViewFactoryImpl:NSObject,BaseView{funcgetNativeInstance()->AnyObject{returnString("fsd")}}协议(protocol)BaseView是:@protocolBaseView-(id)getNativeInstance;@end编译器告诉我:Type'BaseViewFactoryImpl'doesnotconformtoprotocol'BaseView'如果我删除那么就没有错误了。这里

ios - Swift 中带有选择器的协议(protocol)扩展

我正在尝试通过添加registerGestureRecognizers函数来扩展Swift中的协议(protocol)。这是完整的实现。FilterableView由继承自UIImageView的类使用。importUIKitprotocolFilterableView:class{varname:String{get}varview:UIImageView{get}funcapplyFilter(originalImage:UIImage)->UIImage}extensionFilterableView{funcregisterGestureRecognizers(){lettap

swift - 非 -'@objc' 方法不满足带有条件扩展的 '@objc' 协议(protocol)的可选要求

我正在尝试使用条件扩展创建MKMapViewDelegate的默认实现,如下所示:extensionMKMapViewDelegatewhereSelf:NSObject{funcmapView(_mapView:MKMapView,viewForannotation:MKAnnotation)->MKAnnotationView?{...}funcmapView(_mapView:MKMapView,rendererForoverlay:MKOverlay)->MKOverlayRenderer{...}}但是当我编译代码时,我收到了警告Non-'@objc'method'mapVi

ios - 创建一个表示可以打开或关闭的可散列对象的协议(protocol)

我正在尝试创建一个简单的协议(protocol)来说明对象是处于“打开”状态还是“关闭”状态。对那是什么的解释取决于实现对象。对于UISwitch,它是开关是打开还是关闭(duh)。对于UIButton,可能是按钮是否处于selected状态。对于Car,它可能是汽车的引擎是否打开,甚至是它是否在移动。所以我着手创建这个简单的协议(protocol):protocolOnOffRepresentable{funcisInOnState()->BoolfuncisInOffState()->Bool}现在我可以像这样扩展上述UI控件:extensionUISwitch:OnOffRepr

ios - 不支持将协议(protocol)用作符合 'AnyObject' 的具体类型

我正在尝试实现一个简单的多委托(delegate)情况:protocolSubscribable:class{associatedtypeSubscriber:AnyObjectvarsubscribers:NSHashTable{get}}protocolControllerSubscriber:class{funccontrollerDidSomething()}classController:Subscribable{typealiasSubscriber=ControllerSubscribervarsubscribers=NSHashTable.weakObjects()//

swift - 对协议(protocol)扩展进行数学运算的通用方法

目标我想扩展基本类型,如Int、Double、Float...,使其具有更灵活的属性,并使其在图表中呈现在我的应用程序上。比如我画了一个图表,只适合显示Int,不能真正显示Float。我想确保当我将参数传递给此View时它会正确显示。解决方案所以我做了一个协议(protocol)(对于这个例子是这样的):protocolSimplyChartable{staticfuncmax(_dataSet:[SimplyChartable])->SimplyChartable}然后对某些类型进行扩展:extensionInt:SimplyChartable{}extensionDouble:Si

ios - 类型 'string' 不符合协议(protocol) NilLiteralConvertible

在我的Swift代码中:overridefunctableView(tableView:UITableView,titleForHeaderInSectionsection:Int)->String?{letstringIdent=String(format:"section_1_%d",section)returnNSLocalizedString(stringIdent,comment:nil)}运行构建时显示错误:Type'string'doesnotconformtoprotocolNilLiteralConvertible此代码在Objective-C中始终有效。Swift有

ios - 如何在 Swift 中使用扩展协议(protocol)公开 Obj-C 类的现有属性

在Swift1.1中,我们能够编译如下代码,并在我们通过扩展添加的协议(protocol)公开现有Objective-C属性的地方工作。我们还有一些属性由扩展处理。@objcprotocolEnableable:class{varenabled:Bool{getset}}letDisabledAlpha:CGFloat=0.5letEnabledAlpha:CGFloat=1.0extensionUIButton:Enableable{}extensionUIImageView:Enableable{varenabled:Bool{get{returnalpha>DisabledAlp

使用枚举的 Swift 协议(protocol)扩展

所以我有几个代表各种单位系统的枚举:enumMassUnit:Double{casePound=453.59237,Ounce=28.349523125,Gram=1.0,Kilogram=1000.0;}enumVolumeUnit:Double{caseTeaspoon=1,Tablespoon=3,Cup=48,Pint=96,Quart=192,Gallon=768,Liter=202.884136211,Milliliter=0.202884136211}enumTimeUnit:Double{caseSecond=1,Minute=60,Hour=3600,Day=8640

ios - 从 NSDictionary 获取对象时类型 'String' 不符合协议(protocol) 'NSCopying' 错误

在Swift中尝试从NSDictionary中提取对象时出现错误:Type'String'doesnotconformtoprotocol'NSCopying'我尝试将key从String转换为NSString但我没有解决问题。任何人都可以阐明一下吗?这是代码:varexcerciseCategoryDictionary=objectasNSDictionaryletcategory=NSEntityDescription.insertNewObjectForEntityForName(NSStringFromClass(ExcerciseCategory.self),inManage