草庐IT

SMB1Protocol

全部标签

swift - 使用 Swift 在子协议(protocol)中指定关联的父协议(protocol)类型

在Swift2中,我有一个协议(protocol):protocolProtocol{typealiasType}当我想使用Protocol而不定义要用于Type的类型时:varprotocol1:Protocol然后我收到以下错误:Protocol'Protocol'canonlybeusedasagenericconstraintbecauseithasSelforassociatedtyperequirements很明显为什么这行不通。我有另一个协议(protocol),它继承自第一个协议(protocol)并指定关联类型Type应该是一个String。protocolAnoth

ios - 对符合 Swift 协议(protocol)的对象和变量进行单元测试

我有一个VIPER架构设置,正在尝试对线框的实例化进行单元测试。对于任何不知道VIPER是什么的人来说,要理解的关键部分是有4个类具有关键职责。线框创建其他3个(View、演示者和交互器)。然后线框将它们适本地连接起来,如下所示:Wireframe^|vViewPresenterInteractor所以我在Swift中创建单元测试,并且很难确保这些连接已设置。请注意,代码本身有效,单元测试中的断言是问题所在。functestInitWithNothingShouldInstantiateVIPERStackAndConnectLayers(){wireframe=LoginWirefr

swift - 实现可散列和重载运算符的协议(protocol)

我有以下结构:protocolMidiPlayable:Hashable{varmidiValue:UInt8{get}}structPercussionSound:MidiPlayable{letname:Stringlettype:PercussionType}structNote:Hashable,MidiPlayable{letpitch:Pitchletoctave:UInt8letmidiValue:UInt8}我想将这些类型作为Midiplayable传递到我的播放设备,因为我只需要知道原始值。此外,它们将被放置在集合中,因此Hashable是必要的,而且我想比较它们,所

swift - Typealias 必须声明为公共(public)的,因为它符合公共(public)协议(protocol)中的要求

我正在实现一个基本的Functor//classFunctorfwherepublicprotocolFunctor{typealiasAtypealiasBtypealiasFB//fmap::(a->b)->fa->fbfuncfmap(f:A->B)->FB}publicstructBox{letvalue:Xpublicinit(valuev:X){value=v}}extensionBox:Functor{publictypealiasA=XpublictypealiasB=AnypublictypealiasFB=Boxpublicfuncfmap(f:A->B)->FB{

swift - Setter 在使用协议(protocol)转换访问计算变量期间调用结构

我为遵守协议(protocol)的结构创建了一个全局变量。变量有一个setter观察器,它在设置变量时完成任务。由于结构本身遵守协议(protocol),因此我希望变量的类型是协议(protocol)类型。protocolTestProtocol{varsomeInt:Int{getset}varcomputedVar:Int{get}funcfuncCall()->Int}structTestStruct:TestProtocol{varsomeInt:Int=1varcomputedVar:Int{return0}funcfuncCall()->Int{return2}}varte

swift - 您可以在 Swift 中为特定的泛型类型进行协议(protocol)扩展吗?

使用协议(protocol)扩展,我可以使任何对象符合我自己的协议(protocol),只要我为此提供一个实现。例如。假设我创建了一个协议(protocol):protocolPrintable{//...whatever...}现在我可以像这样打印字符串和整数了:extensionString:Printable{//...whateverisrequiredtosatisfyprotocol...}extensionInt:Printable{//...whateverisrequiredtosatisfyprotocol...}这是一种非常酷的编程方式,因为我现在可以将字符串和整

ios - 需要帮助为 SKScene 制定自定义协议(protocol)

我没有制作自己的协议(protocol)的经验,我正在尝试制作一个,以便我可以将GameControllerdpad值发送到SKScene。一切都已连接并正确构建,但我的SKScene没有收到任何信息。这是我的主视图Controller:importGameControllerimport...protocolGetsDpadFromController{funcdpadValueUpdate(dpadValue:CGPoint)}classGameViewController:UIViewController{varjoystickController:GCController!va

objective-c - 在 Swift 中传递 @protocol 类型

我有一个将Protocol*类型作为参数的Objective-C方法。如何在Swift中调用此方法。例子://InObjective-C@protocolAProtocol@end@interfaceMyClass:NSObject+(id)proxyWithProtocol:(Protocol*)protocol;@end//Icancallthismethodwithaprotocolasparameter[MyClassproxyWithProtocol:@protocol(AProtocol)];如果我想通过桥接在Swift中使用MyClass。如何将Objective-C中定

swift - 泛型:是否有 InitializableWithString 的协议(protocol)?

我正在尝试构建一个可以从字符串初始化的通用结构。最小的例子:structExample{vardata:Tinit(fromStringstring:String){data=T(string)}}这自然会失败,因为我们必须确保T可以是来自字符串的init()。我找不到为此的协议(protocol),所以我尝试创建它:protocolInitializableWithString{init?(_:String)}structExample{...}但是使用Int进行试验会给出:lettestVar=Example(fromString:"12")error:type'Int'doesn

swift - 使用运行时指定的协议(protocol)一致性测试和选择器的通用调度机制

所以,我正在制作一个SpriteKit游戏,我想转发update、mouseDown、keyDown等...事件在GameScene上调用该场景的子级,前提是它们是具有适当响应者的SKNode的自定义子类。我根据我想在每个节点上调用哪些函数制定了几个协议(protocol),比如我为需要接收keyDown、keyUp的节点设置了KeyboardDelegate等...UpdateDelegate用于更新、didSimulatePhysics等...以及类似我总共有UpdateDelegate、KeyboardDelegate、MouseDelegate和CollisionDelegat