草庐IT

SMB1Protocol

全部标签

swift - Swift 协议(protocol)元类型的运行时比较

我正在尝试将Swift协议(protocol)与实现动态匹配,但我在尝试在运行时执行协议(protocol)比较时遇到了阻碍-似乎协议(protocol)在运行时可能并不存在?我尝试过的一些例子:varprotocols[Any]funcfindProtocol(aProtocol:Any)->Bool{//Nope,protocolsdon'timplementequatableaProtocol==protocols[0]//Doesn'twork,unsafeAddressOf()onlyappliestoAnyObjectsletpointer:UnsafePointer=un

swift - 协议(protocol)扩展中的方法永远不会被调用,加上书中的错误

在《SwiftApprenticeBeginningprogrammingwithSwift2.2》一书的第261~262页有一段关于协议(protocol)扩展的示例代码,如下所示值gamesPlayed在协议(protocol)TeamRecord、协议(protocol)扩展和结构BaseballRecord中定义protocolTeamRecord{varwins:Int{get}varlosses:Int{get}vargamesPlayed:Int{get}}extensionTeamRecord{//gamesPlay#1vargamesPlayed:Int{return

swift - 如何使用 Swift 协议(protocol)设置 iTunes ScriptingBridge 的属性

我想使用iTunesScriptingBridge框架在Swift2.3/3中设置轨道的评级。我的SwiftiTunesheader协议(protocol)定义如下(完整headerhere):@objcprotocoliTunesTrack:iTunesItem{@objcoptionalvaralbum:NSString{getset}@objcoptionalvaralbumArtist:NSString{getset}@objcoptionalvarrating:Int{getset}}extensionSBObject:iTunesTrack{}但是当我尝试设置评级时:var

objective-c - 我怎么不遵守这个协议(protocol)?

有什么我不明白的吗?协议(protocol):publicprotocolSLKTypingIndicatorProtocol:NSObjectProtocol{/**ReturnsYESiftheindicatorisvisible.SLKTextViewControllerdependsonthispropertyinternally,byobservingitsvaluechangestoupdatethetypingindicatorview'sconstraintsautomatically.Youcansimply@synthesizethispropertytomakei

ios - Swift - Core Data - codegen - 使扩展符合协议(protocol)?

我发现有关Xcode8核心数据编辑器中新代码生成功能的文档有点稀疏。这是一个“在Objective-C中,我会……”的问题。我正在尝试声明一个具有两种方法的协议(protocol):@property(strong,readonly)NSNumber*serverId;+(instancetype)objectWithServerId:(NSNumber*)serverIdinContext:(NSManagedObjectContext*)moc;在Objective-C中,我会使用mogenerator来声明生成的基类应该是“MyBaseClass”。并且在该基类中我可以实现该类方

Swift - 使第三方类型符合我自己的协议(protocol)但有冲突的要求

这是归结的情况:假设AliceAllman编写的第三方框架提供了一个非常有用的类:publicclassAATrackpad{publicvarcursorLocation:AAPoint=.zero}BobBell编写的另一个框架提供了一个不同的类:publicclassBBMouse{publicvarwhere_is_the_mouse:BBPoint=.zero}在运行时,可能需要这些类中的任何一个,具体取决于用户决定使用的硬件。因此,与DependencyInversionPrinciple保持一致,我不希望我自己的类型直接依赖于AATrackpad或BBMouse。相反,我

ios - 协议(protocol)要求委托(delegate)继承自 UIViewController

我有一个看起来像这样的协议(protocol)ShareDelegate:protocolShareDelegate:class{funcshare(event:EventJSONModel,skipToTimetime:CMTime?,view:UIView,completion:@escaping()->())}extensionShareDelegatewhereSelf:UIViewController{funcshare(event:EventJSONModel,skipToTimetime:CMTime?=nil,view:UIView,completion:@escapi

swift - 在 Swift 中是否可以要求关联类型符合关联类型的关联协议(protocol)?

我正在尝试(基本上没有理由)制定一个协议(protocol)来描述类别理论中的类别。我试过想出这样的东西。protocolCategory{associatedtypeObject:Protocol}protocolHom{associatedtypeC:CategoryassociatedtypeSource:C.ObjectassociatedtypeTarget:C.Object}特别是,我希望每个Hom类型都有一个关联的类别C和一个关联的源和目标类型,它们都是该类别中的对象。因此,我为每个类别关联了一个对象协议(protocol),并尝试使Hom的源和目标符合相应类别的对象协议

Swift 协议(protocol)导致无效的重新声明和困惑的函数表

TLDR:在大型项目中使用许多Swift协议(protocol)非常适合测试和SOLID编码,但我遇到了函数困惑和无效的重新声明冲突。在大量使用协议(protocol)的同时避免Swift中的这些问题的最佳实践是什么?具体来说,我想使用协议(protocol)将职责与View类分开,这样它们就不需要了解用于“装饰”它们的数据模型的任何信息。但这为我的数据模型类创建了很多函数,这些函数在整个应用程序中公开,并且开始与其他协议(protocol)发生冲突。举个例子,假设我想根据我项目中的某个数据模型设置我的自定义tableview单元格。我们称它为MyDataModel。我创建了一个这样的

swift - 输入任何对象?不符合协议(protocol) CVarArgType?

我正在尝试动态生成谓词并在从Xcode的beta版本更新后出现编译错误。知道问题是什么。我尝试将valueForKey的结果转换为CVarArgType,但没有成功。importUIKitimportCoreDataclassUser:NSManagedObject{@NSManagedvara:String?@NSManagedvarb:String?}varuser=User()//Thiswillprobablycrash,butgoodenoughtoreproducecompileerrorvarkeys=["a","b"]forkeyinkeys{varpredicate=