草庐IT

SMB1Protocol

全部标签

swift - 可选字段类型不符合 Swift 3 中的协议(protocol)

我有一个包含1个可选字段和1个非可选字段的类,它们的类型都是AnotherClass并且还符合CustomProtocol:protocolCustomProtocol{}classCustomClass:CustomProtocol{varnonoptionalField:AnotherClass=AnotherClass()varoptionalField:AnotherClass?}classAnotherClass:CustomProtocol{}字段nonoptionalField的类型为AnotherClass并符合CustomProtocol。另一方面,optionalF

swift - swift 有 "C Type"协议(protocol)吗?

我想将泛型约束为可以用C表示的类型。Swift标准库中是否存在所有C类型都遵循的协议(protocol)或类型?funcdoWithCType(cValue:T){//dothingwithCtype}如果不是CRepresentable,可能是CStruct类型?线索:使用这个C类型:typedefstruct{inthodor;}Hodor;我强行将结构转换为不兼容的类型(导致崩溃)。这是错误消息:Couldnotcastvalueoftype'__C.Hodor'(0x1035c0700)to'Swift.CVarArg'(0x107196240).我在任何地方都找不到“__C”

ios - NSManagedObject 不能符合 Swift 中的协议(protocol)

我需要一个NSManagedObject和一个常规NSObject的共享接口(interface)。在Objective-c中,我可以使用一个协议(protocol)来实现它。但是在Swift中我得到了这个运行时错误。任何解决方案?提前致谢!protocolProduct{varcode:String{getset}varsp:String{getset}}classStock:NSManagedObject,Product{@NSManagedvarcode:String@NSManagedvarsp:String}Error:Undefinedsymbolsforarchitect

ios - 如果元素符合给定协议(protocol),则扩展数组以符合协议(protocol)

我想做这样的事情,但无法获得正确的语法或在网络上找到提供正确编写方法的任何地方:protocolJSONDecodeable{staticfuncwithJSON(json:NSDictionary)->Self?}protocolJSONCollectionElement:JSONDecodeable{staticvarkey:String{get}}extensionArray:JSONDecodeablewhereElement:JSONCollectionElement{staticfuncwithJSON(json:NSDictionary)->Array?{vararray

swift - 如何在 UML 中可视化协议(protocol)和扩展?

使用UML接口(interface)来可视化UML中的Swift协议(protocol)似乎是合理的。但是我应该如何可视化为特定协议(protocol)提供默认实现的扩展?我应该只使用像>ProtocolName这样的类吗?继承自该协议(protocol)? 最佳答案 扩展存在于某个类的范围内,只是向其添加一些功能。所以我会将扩展表示为子类(最终可能更喜欢打包)。为了表明它是一个扩展,我会使用刻板印象。对扩展类的依赖在某种程度上是可选的,因为在上下文中它是一种命名约定。如果扩展将另外遵守某些协议(protocol),您只需将实现关系

ios - Swift 同时将对象转换为类型和协议(protocol)

如何将给定对象转换为类型和协议(protocol),以便调用一些定义为扩展的方法例如:extensionIdentifiablewhereSelf:NSManagedObject,Self:JsonParseDescriptor{funcsomeMethod(){}}现在我有一个从核心数据中检索到的对象,我想将其转换为上述协议(protocol),以便在其上调用someMethod。我可以使用protocol转换为协议(protocol),但我怎样才能在其中包含NSManagedObejct类型呢?谢谢 最佳答案 从Swift4开始

Swift:类型不符合协议(protocol) 'BooleanType.Protocol'

我在尝试检查是否设置了可选变量时遇到错误。错误:键入CGPoint?不确认协议(protocol)'BooleanType.Protocol'这是我的代码:varpoint:CGPoint?if(point){...}这不是应该如何使用Swift中的可选类型吗?if比较应该怎么写? 最佳答案 从beta5开始,您应该编写point==nil或point!=nil。进行此更改是因为当值是可选bool值时会造成混淆。例如:letmaybe:Bool?=falseifmaybe{//executedbecause`maybe`isanop

methods - 不允许部分应用协议(protocol)方法

有人可以解释这个错误以及为什么这对闭包有效吗?如果您在“B”类中将“测试”更改为“A”,则两种情况下一切正常。测试版7protocolTest{funcsomeFunc()->StringvarsomeClosure:()->Int{get}}classA:Test{funcsomeFunc()->String{return"AString"}varsomeClosure:()->Int{return{return2}}}classB{leta:TestletaString:()->StringletaInt:()->Intinit(a:Test){self.a=aaString=a.

ios - 如何在Swift中调用协议(protocol)提供的静态方法

如何在实例中访问static协议(protocol)方法我有一个Contact列表,联系人可以是FamilyContact继承自Contact和GroupStatus协议(protocol)我想从GroupStatus调用静态方法,但没有成功...这是我的代码protocolGroupStatus{staticfuncisPrivate()->Bool//staticmethodthatindicatesthestatus}protocolIsBusy{funcwizzIt()}classAdresseBook{privatevarcontacts=[Contact]()funcadd

ios - Swift:如何解决 'protocol' 类型的弱变量非法的问题

在阅读了此处有关此问题的一些帖子后,我发现我的协议(protocol)应该继承自“class”,以便“weak”能够处理我的委托(delegate)变量。“weak”只能应用于类或类绑定(bind)协议(protocol)类型。如果我的协议(protocol)没有继承自“class”,swift是否“推断”它应该是弱的?这是将“协议(protocol)”类型的变量转换为弱变量的实际方法吗?在内存管理方面会发生什么protocolFacebookLoginViewControllerDelegate:class{funcfacebookLoginViewControllerDidLogi