草庐IT

generics - 如何在 Swift 中使用泛型子类化另一个类?

我的协议(protocol)和类是:protocolNamed{}classA{}现在我想从P创建一个固有类:classB:A{}但是编译错误占用,它说:Referencetogenerictype'A'requiresargumentsin请告诉我如何使用泛型子类化另一个类,谢谢! 最佳答案 当我看到你的代码时,它看起来非常好,但我不知道你在类中做了什么。这是一个简单的例子。protocolNamed{varfirstName:String{getset}varlastName:String{getset}varfullName:

swift:如何将父类(super class)中的公共(public)方法覆盖为子类中的私有(private)方法

我有一个super类(class)classFather{publicfuncdoSomething(){}}我希望这个子类是classChild:Father{privateoverridefuncdoSomething(){}}但是Xcode是这么说的Overridinginstancemethodmustbeasaccessibleasthedeclarationitoverrides那么,如何将父类(superclass)中的公共(public)方法覆盖为子类中的私有(private)方法谢谢 最佳答案 你不能因为那样会违反

ios - touchesBegan 未在 UIView 子类中调用

我知道已经有一些关于此的问题,但我找不到解决方案。有一个非常简单的代码在我的一个项目上工作得很好,但在另一个项目上却不行:这是UIView子类的代码。importUIKitclasstest:UIView{init(frame:CGRect,color:UIColor){super.init(frame:frame)self.backgroundColor=colorself.userInteractionEnabled=true}requiredinit(coderaDecoder:NSCoder){fatalError("init(coder:)hasnotbeenimplemen

ios - Swift 从父类(super class)函数中的相应子类调用类函数

我想在父类(superclass)中实现init(coderaDecoder:NSCoder!),并通过在运行时调用父类(superclass)中特定子类的类方法在所有子类中使用它。我的父类(superclass)classfuncdummyDict()->NSDictionaryinit(coderaDecoder:NSCoder!){for(key,value)inself.class.dummyDict(){--------------------^||Getthisfromthecorrespondingsubclassatruntime!NSLog("encoding\(va

swift - 在 Swift 中初始化子类时调用父构造函数

我有一些继承自基类的类。通常对于C++类,我曾经在子类中重写构造函数,然后调用父类。在Swift中有没有一种方法可以在初始化子类时调用父构造函数而不重写它?internalclassA{init(aBool:Bool?=false){...}}classB:A{init(aString:String){...}}以这两个类为例,我想使用A构造函数初始化B:letobj=A(true) 最佳答案 TherulesfromApple声明:[S]ubclassesdonotinherittheirsuperclassinitializer

ios - Swift 中的类扩展与子类化?

我正在使用第三方框架,该框架提供了一个其实例仅具有属性的类。在我的应用程序中,我想为此实例添加一个额外的属性。对于这种情况,执行此操作的合适方法是什么?a)在我的应用中扩展框架的类b)创建框架类的子类并定义我需要的新属性提前致谢 最佳答案 是b)因为不支持在类扩展中添加(存储)属性。使用扩展有两个重要的规则:Extensionscanaddnewfunctionalitytoatype,buttheycannotoverrideexistingfunctionalityExtensionscanaddnewcomputedprope

ios - 使用基于协议(protocol)或基类的通用参数值将子类上的方法调用到 UITableViewCell

我想简化UITableViewCell子类中“设置”方法的调用。然而,并非所有设置方法都相同,但它们的参数继承自同一类型。是否可以使用泛型或协议(protocol)不必每次都强制转换参数?首先,我使用这样的cellForRow方法:classDataSource:NSObject,UITableViewDataSource,UITableViewDelegate{vardataCollection:TableViewDataCollection!varviewModel:VM!functableView(_tableView:UITableView,cellForRowAtindexP

xcode - 使用 NSObject 继承子类化 Swift 泛型类

我遇到了一个错误,我不确定这是Swift语言的限制还是错误。这是最基本的前提:classGenericClass:NSObject{varinputValue:Tinit(value:T){self.inputValue=valuesuper.init()}}classSubClass:GenericClass{overrideinit(value:String){super.init(value:value)}}vartest=GenericClass(value:"test")//Succeedsvartest2=SubClass(value:"test2")//Failswith

swift - 覆盖子子类中的协议(protocol)默认实现不参与动态调度

考虑以下Playground:protocolA{funcf()->String}extensionA{funcf()->String{return"AAAA"}}classB:A{}classC:B{funcf()->String{return"CCCC"}}leta:A=C()letb:B=C()letc:C=C()a.f()//"AAAA"-why?b.f()//"AAAA"-why?c.f()//"CCCC"我不明白为什么a.f()和b.f()返回"AAAA"-他们应该返回“CCCC”因为funcf()->String应该被动态调度(正如它在协议(protocol)中声明的那样

ios - 将 NSManagedObject 子类核心数据对象打印到控制台在 Swift 中返回空行

我正在使用CoreData开发Swift应用程序。我创建了我的*.xcdatamodeld文件并创建了一个NSManagedObjectSubclass(Editor->CreateNSManagedObjectSubclass...)。一切正常,除非我尝试println该类的实例化对象(我们称之为Person),控制台打印空白或只是Optional()如果没有展开。我尝试通过类扩展添加DebugPrintable或Printable但没有成功。这是CoreData对象的已知限制吗?我错过了什么?为清楚起见添加代码:///Person.swift(auto-generatedbyXco