草庐IT

compact_protocol

全部标签

ios - swift 3 : Is there a way to cast an object to a class and protocol at the same time?

我已经通读了Apple的SwiftiBook(类型转换和协议(protocol))的相关部分,但我似乎可以找到一种方法来指定对象是符合特定协议(protocol)的特定类的实例。作为tableView(_:,cellForRowAt:)中的示例,我想转换tableView.dequeueReusableCell(withIdentifier:reuseID,for:indexPath)返回的单元格作为UITableViewCell的子类,它符合RLMEntityCapableCell协议(protocol)(只是指定符合者有一个名为item的变量,它是的一个实例>Object,或其子类

swift - “Self”仅在协议(protocol)中或作为类方法的结果可用

更新:由于SE-0068–ExpandingSwiftSelftoclassmembersandvaluetypes,Swift3允许从其他类型使用Self.您可以从类函数返回“Self”:extensionNSObject{classfuncmakeOne()->Self{returnself()}}所以你可以这样做:letset:NSCountedSet=NSCountedSet.makeOne()但是,以下两个不编译:extensionNSObject{classfuncmakeTwo()->(Self,Self){return(self(),self())}classfuncm

swift - “Self”仅在协议(protocol)中或作为类方法的结果可用

更新:由于SE-0068–ExpandingSwiftSelftoclassmembersandvaluetypes,Swift3允许从其他类型使用Self.您可以从类函数返回“Self”:extensionNSObject{classfuncmakeOne()->Self{returnself()}}所以你可以这样做:letset:NSCountedSet=NSCountedSet.makeOne()但是,以下两个不编译:extensionNSObject{classfuncmakeTwo()->(Self,Self){return(self(),self())}classfuncm

ios - 惰性/内联在 Swift 中实现协议(protocol)

我想在Swift中延迟/内联实现一个协议(protocol)。所以在实现的时候,我可以访问协议(protocol)范围之外的变量,与在Java中实现接口(interface)而不声明类相同:classMyClass:UIView{varsomeComponent:SomeInnerComponent=SomeInnerComponent();varcount:Int=0;vara=:SomeProtocol{//编辑----谢谢我看这个解决方案,我没有看到如何访问父类的变量。所有示例都显示了一个匿名类,但没有一个示例正在访问父变量。 最佳答案

ios - 惰性/内联在 Swift 中实现协议(protocol)

我想在Swift中延迟/内联实现一个协议(protocol)。所以在实现的时候,我可以访问协议(protocol)范围之外的变量,与在Java中实现接口(interface)而不声明类相同:classMyClass:UIView{varsomeComponent:SomeInnerComponent=SomeInnerComponent();varcount:Int=0;vara=:SomeProtocol{//编辑----谢谢我看这个解决方案,我没有看到如何访问父类的变量。所有示例都显示了一个匿名类,但没有一个示例正在访问父变量。 最佳答案

arrays - 如何在 Swift 中比较两个协议(protocol)数组是否相等?

我遇到过一种情况,我确信这种情况并不少见。我有两个符合协议(protocol)的对象数组,我想检查它们是否相等。我真正想做的是:protocolPattern:Equatable{funcisEqualTo(other:Pattern)->Bool}func==(rhs:Pattern,lhs:Pattern)->Bool{returnrhs.isEqualTo(lhs)}extensionEquatablewhereSelf:Pattern{funcisEqualTo(other:Pattern)->Bool{guardleto=otheras?Selfelse{returnfals

arrays - 如何在 Swift 中比较两个协议(protocol)数组是否相等?

我遇到过一种情况,我确信这种情况并不少见。我有两个符合协议(protocol)的对象数组,我想检查它们是否相等。我真正想做的是:protocolPattern:Equatable{funcisEqualTo(other:Pattern)->Bool}func==(rhs:Pattern,lhs:Pattern)->Bool{returnrhs.isEqualTo(lhs)}extensionEquatablewhereSelf:Pattern{funcisEqualTo(other:Pattern)->Bool{guardleto=otheras?Selfelse{returnfals

ios - 具有关联类型的 Swift 协议(protocol)中的弱属性要求

我想编写一个属性要求较弱的协议(protocol)。符合它的类必须能够为此属性指定任何类型。此外,我不想指定实际类型,因此它应该是使用某种协议(protocol)指定的类型。这段代码展示了我对非弱属性的想法:protocolObjectProtocol:class{typealiasPropertyTypevarproperty:PropertyType{getset}}protocolFirstPropertyProtocol:class{}protocolSecondPropertyProtocol:class{}classFirstObjectImpl:ObjectProtoco

ios - 具有关联类型的 Swift 协议(protocol)中的弱属性要求

我想编写一个属性要求较弱的协议(protocol)。符合它的类必须能够为此属性指定任何类型。此外,我不想指定实际类型,因此它应该是使用某种协议(protocol)指定的类型。这段代码展示了我对非弱属性的想法:protocolObjectProtocol:class{typealiasPropertyTypevarproperty:PropertyType{getset}}protocolFirstPropertyProtocol:class{}protocolSecondPropertyProtocol:class{}classFirstObjectImpl:ObjectProtoco

ios - 试图理解 Swift 中的协议(protocol)/委托(delegate)

我是编程和Swift的新手,我正在尝试了解如何使用协议(protocol)和委托(delegate)在两个ViewController(无segue)之间传递数据。我有一个ViewController(VIEWA),它有一个文本字段和按钮。当用户点击该按钮时,它应该会在另一个ViewController(VIEWB)的标签中显示该文本。我无法获得显示文本的标签-如果您能解释完成这项工作所需的条件,我将不胜感激。非常感谢!importUIKitprotocolsendNameToViewB{funcshowNameLabel(name:String)}classViewA:UIViewC