草庐IT

UIApplicationDelegate_Protocol

全部标签

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

swift - 从泛型类快速继承是否会阻止通过扩展实现协议(protocol)一致性?

@objcpublicprotocolP1{funcp1foo()}@objcpublicprotocolP2{funcp2foo()}classA:NSObject,P1{funcp1foo(){}}classB:A{}extensionB:P2{funcp2foo(){}}->类型“B”不符合协议(protocol)“P2”。为什么?删除泛型解决了这个错误,但我不明白-此时B应该是一个完全特定的类型...... 最佳答案 它是@objc和泛型的组合。Objective-C对Swift泛型一无所知,因此您认为B应该采用@objc协

arrays - Swift 中响应协议(protocol)的类型数组

我正在寻找一种方法来在Swift3中创建响应协议(protocol)的类型数组。这是我的问题(为了示例而简化),我有一个名为Rule的协议(protocol):protocolRule{staticfunccheck(_system:MySystem)->[Inconsistency]}和一些响应规则协议(protocol)的类型:structFirstRule:Rule{staticfunccheck(_system:MySystem)->[Inconsistency]{...}}structSecondRule:Rule{staticfunccheck(_system:MySyst

swift - 满足具有协变类型属性的协议(protocol)要求

我有一个具有属性要求的协议(protocol):protocolV{}protocolP{varv:V?{get}}问题是只有V类型的属性才能满足这个要求。编译以下代码:classA:P{varv:V?}但以下不是:protocolSome:V{}classB:P{varv:Some?}protocolAnother{}classC:P{varv:(Another&V)?}也就是说,协变类型和协议(protocol)组合类型都不能满足协议(protocol)要求。这似乎是编译器的一个相当古老(而且非常不幸)的限制(参见https://bugs.swift.org/browse/SR-5

ios - 创建符合另一个协议(protocol)的协议(protocol)变量

我有一个Swift项目,我想在其中创建一个动画师。我将在我所有的ViewController中使用这个动画对象,为它们中的每一个创建一个特定的对象。实际的动画对象必须符合Animator协议(protocol)。看例子:这是Animator协议(protocol):protocolAnimator{associatedtypeViewControllerGenericvarcontroller:ViewControllerGeneric{get}///Inittheanimator//////-Parametercontroller:TheUIViewControllertobindt

ios - UIApplicationDelegate 但对于每个 ViewController

我想在显示新ViewController时得到通知,UIApplicationDelegate提供了这种方式,但针对整个应用程序,而不是针对每个ViewController每次出现新的ViewController时是否都会调用任何委托(delegate)?注意事项我完全了解UIViewController中的功能,但我问的是与ViewController本身分离的委托(delegate),例如ApplicationDelegate我的尝试我搜索了很多,我想到的唯一解决方案是扩展ViewController,然后让我的ViewController继承这个新的ViewController,