草庐IT

swift - 在 Swift 中,为什么子类方法不能覆盖父类(super class)中协议(protocol)扩展提供的方法

我知道这个问题的标题令人困惑,但下面的示例解释了奇怪的行为:protocolProtocol{funcmethod()->String}extensionProtocol{funcmethod()->String{return"FromBase"}}classSuperClass:Protocol{}classSubClass:SuperClass{funcmethod()->String{return"FromClass2"}}letc1:Protocol=SuperClass()c1.method()//"FromBase"letc2:Protocol=SubClass()c2.m

ios - 如果没有连接、Internet 或其他方式获取 URL 的内容,则 XMLParser 的子类会因 contentsOfURL 初始值设定项而崩溃

我正在尝试整理一个issue如果没有连接以获取指定URL的内容(例如,应用程序处于离线状态),提要解析框架(FeedKit)会崩溃。因此,它在App在线时有效,并且仅在线。每当我尝试使用父类(superclass)XMLParser的便利初始化程序实例化我的Parser类时convenienceinit?(contentsOfurl:URL)框架崩溃:为了尝试隔离问题并排除框架中引入的一些错误,我在一个干净的项目中重新创建了该问题:一个像魅力一样工作的解决方案,使用Foundation框架的普通vanillaXMLParser:letfeedURL=URL(string:"http:/

ios - 如何在 Realm Swift 中将子类添加到 List<superclass>

我有一个继承自Object的名为Thing的父类(superclass)(我知道它不是特定的):classThing:Object{dynamicvartitle:String=""varparents:[Thing]{returnlinkingObjects(Thing.self,forProperty:"children")}letchildren=List()}以及名为Task和Thought的两个子类。但是,当我这样做的时候someThing.children.append(Task())它抛出“对象类型不正确。”我做错了什么?Realm是否不允许父类(superclass)列

Swift 4.1 - 子类 UIImage

升级到Swift4.1后使用自定义init子类化UIImage时,我得到Overridingnon-@objcdeclarationsfromextensionsisnotsupported错误classFoo:UIImage{init(bar:String){}requiredinit?(coderaDecoder:NSCoder){fatalError("init(coder:)hasnotbeenimplemented")}//Overridingnon-@objcdeclarationsfromextensionsisnotsupportedrequiredconvenienc

swift - 无法为泛型类型的子类调用初始值设定项

更新:问题和标题已根据针对初始问题所做的更改进行了重述。我有一个基类,它实现了一个用于创建新实例的通用类方法。该类方法的简化逻辑如下classMyBaseClass{requiredinit(_record:MyRecordType){println("EnteredMyBaseClass.init")//Initializebaseclassfromrecord}classfuncretrieveInstance(name:String,callback:(T)->()){letmyRecord:MyRecordType=...//Performfetchtogetarecordfo

ios - 在 Swift 的自定义 UIView 子类中通过 UIAppearance 设置文本属性

根据NSHipster,“让自定义UI类符合UIAppearance不仅是最佳实践,而且它展示了对其实现的一定程度的关注。”因此,我尝试将稍后用于创建NSAttributedString的文本属性设置为vartitleTextAttributes:[String:AnyObject]?中的属性像这样的UIView子类:funcapplyAppearance(){UINavigationBar.appearance().translucent=trueUINavigationBar.appearance().tintColor=UIColor(named:.NavBarTextColor

swift - 在子类 : Swift and SpriteKit 中循环 Initialization 的 drain

我想创建一个比SpriteNode的touchesBegan级别更高的SKShapeNode,所以当我想从这个Sprite的touchesBegun事件将SKShapeNode添加到屏幕时,形状已经存在,我只需将它添加到来自touchesBegan覆盖的屏幕。TL;DR,在我的SKSpriteNode中,我正在尝试预构建SKShapeNode,它将在Sprite被触摸时用作动画环。我想用变量/常量创建SKShapeNode,这样我就可以轻松地编辑它的值...因此在子类的根目录中我有颜色、大小和线宽的变量,准备用于创建SKShapeNode...classBalls:SKSpriteNo

ios - UIPopoverBackgroundView contentViewInsets 必须由子类实现

我正在实现自定义PopoverBackgroundView,并按照Swiftdocumentation中的说明进行操作我必须实现如下方法:classSettingsPopoverBackgroundView:UIPopoverBackgroundView{overridevararrowOffset:CGFloat{get{return0.0}set{super.arrowOffset=newValue}}overridevararrowDirection:UIPopoverArrowDirection{get{returnUIPopoverArrowDirection.Up}set{

swift - 如何制作自定义圆形 UIImageView 子类?

我想制作我的自定义回合UIImageView并在Storyboard中显示它。接下来我做了:@IBDesignableclassRoundedImageView:UIImageView{overrideinit(image:UIImage?){super.init(image:image)super.layer.cornerRadius=super.frame.size.height/2self.layer.cornerRadius=self.frame.size.height/2}overrideinit(frame:CGRect){super.init(frame:frame)su

ios - 在 Swift 中,如何防止函数在子类上被调用?

我有一个基类,它在一些数据结构中存储了很多其他数据对象,这个类通过一组add/remove使我的数据结构保持同步的函数。现在我去创建这个基类的子类,子类就像基类一样,除了它对接受什么样的数据对象有特殊的规则(它查看数据对象的值,然后拒绝它们如果值不正确)。由于这种“有效性”检查,我为名为change的子类创建了一个新函数。在change函数中,它检查所有传入的数据对象并验证它们是否正常,然后用这些数据对象替换数据结构中的所有数据对象。问题是我不希望有人能够创建一个子类对象并允许他们调用基类的add/remove函数,因为我只希望子类能够通过子类的change函数改变。我还没有找到一个好