草庐IT

UIApplicationDelegate_Protocol

全部标签

class - 带有 NSBundle 的段错误 11(对于类 :) and multiple type constraint (protocol + class)

以下代码在模拟器中运行良好,但在创建存档时抛出“Commandfaileddutosignal:Segmentationfault:11”。funcpopAction(){MyViewController.pop(self)}classfuncpop(controller:T){letbundle=NSBundle(forClass:controller.dynamicType)//…}下面的编译就好了:letbundle=NSBundle(forClass:object_getClass(self))//orletbundle=NSBundle(forClass:self)dynam

arrays - 协议(protocol)实例数组不适用于 contains 方法

这个问题在这里已经有了答案:Findindexofobjectinanarrayoftype[SomeProtocol](2个答案)关闭7年前。我有一个协议(protocol),用于定义构成笔记内容的内容。一条笔记可以有许多不同的内容类型,因此协议(protocol)似乎是最好的方式。publicprotocolContent{varcontentType:String{get}}然后我有一个该协议(protocol)的实现publicclassPlainTextContent:Content{publicvarcontentType:String{return"PlainText"}

ios - Swift 中的协议(protocol)和委托(delegate)

我正在尝试在Swift中创建一个协议(protocol)和一个委托(delegate),但我遇到了一些问题。我想在表格View的单元格中有一个切换按钮。这是我的协议(protocol):importFoundationimportUIKitprotocolCellProtocol{funconSwitchToogle(sender:AnyObject,onCell:UITableViewCell)}这是我的单元格类:importUIKitclassCell:UITableViewCell{@IBOutletweakvarlabel:UILabel!@IBOutletweakvarfla

ios - 如何创建特定类型的对象数组,符合 Swift 2 中的协议(protocol)

我的问题很简单,希望只是语法问题。我正在尝试创建一个符合我的协议(protocol)的UIViewControllers数组。我能够将此要求创建为函数参数:funcdoSomething(controller:T){...}现在,我想将这些对象存储在一个数组中,我希望我可以有这样的东西:varviewControllers=Array()但是,我不知道如何在数组上创建此约束。这是可能的还是我的做法有误? 最佳答案 你最好的选择可能是使用一个只有你的类符合的协议(protocol),并使用这个协议(protocol)来约束你的类型:p

objective-c - Swift 不符合 Objective-C 协议(protocol)

所以我正在尝试遵循wsdl2code的教程,他们在应用程序委托(delegate)中实现了obj-c协议(protocol)(整个项目都在objective-c中)。我试图快速重新创建它,但我一直被告知我不符合协议(protocol)。我已确保方法的swift版本中使用的类型正确地从objective-c切换到swift。这是objective-c头文件#ifndef_Wsdl2CodeProxyDelegate#define_Wsdl2CodeProxyDelegate@protocolWsdl2CodeProxyDelegate//ifservicerecieveanerrorth

swift - 在 Swift 标准库的协议(protocol)中使用 typealias 语法

在Apple的Swift编程指南中,描述了如何在协议(protocol)中使用typealias关键字(来自泛型部分)protocolContainer{typealiasItemTypemutatingfuncappend(item:ItemType)varcount:Int{get}subscript(i:Int)->ItemType{get}}然后实现:structIntStack:Container{typealiasItemType=Int//cansometimesbeleftoutandinferredbythecompilermutatingfuncappend(ite

swift - 如何以面向协议(protocol)的方式创建我的游戏架构?

我还没有找到任何好的方法来为游戏设计面向协议(protocol)的项目架构。这是带有Structs的第一个版本:protocolUsable{funcuseItem()}protocolItem{varname:String{get}varamount:Int{get}varimage:String{get}}structSword:Item,Usable{varname=""varamount=0varimage=""funcuseItem(){}}structShield:Item,Usable{varname=""varamount=0varimage=""funcuseItem

ios - 如何同时使用带有可选和扩展的@objc 协议(protocol)?

这段代码无法编译,听起来可能很愚蠢,但我会解释为什么它如此重要!@objcprotocolp{optionalfuncf1()funcf2()}extensionp{funcf1(){}funcf2(){}}classfoo:p{}编译器说Typecdoesnotconformtoprotocol'p'这可能是因为你不能同时使用@objc可选和扩展(在这种情况下也没有意义).但请考虑以下示例:我想在我的扩展中的协议(protocol)中定义的非可选方法上设置一个选择器(我使用@objc的主要原因):funcf1(){}->funcf1(){...#selector(Self.f2)..

具有泛型类型的 Swift 协议(protocol)

我正在尝试创建一个具有返回泛型类型的静态方法的协议(protocol)。在大多数情况下,我所拥有的似乎工作得相当好。当我想使用扩展来返回这个通用值时,挑战就来了。这就是我所拥有的。可以将此代码放入Playground。这是我想要的第一个协议(protocol),它包含associatedtypeprotocolAWSerializable{associatedtypeTstaticfuncdeserialize(dictionary:[String:Any])->T?funcserialize()->[String:Any]}然后我创建了另一个协议(protocol),它允许我创建执行

swift - 协议(protocol)所有实现的返回类型

我有一个小问题。我需要为可以返回协议(protocol)的每个实现的函数指定一个返回值。例如:我的协议(protocol):protocolMyProtocol{//somefunctions}实现:classClassA:MyProtocol{}classClassB:MyProtocol{}“问题”函数:funcgetClassByString(_name:String)->MyProtocol.Type{switchname{case"a":returnClassA.selfcase"b":returnClassB.selfdefault:returnClassC.self}}/