首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >因特!不会在Swift中继承

因特!不会在Swift中继承
EN

Stack Overflow用户
提问于 2015-10-13 01:39:13
回答 1查看 359关注 0票数 1

目前,我正在试验基于RealmSwift JSON的基于领域-JSON的JSON支持,但仍然停留在initWithDictionary上。我将扩展转移到RLMObjectBase,自动生成的快速代码如下所示:

代码语言:javascript
运行
AI代码解释
复制
extension RLMObjectBase {
  .....
    public init!(JSONDictionary dictionary: [NSObject : AnyObject]!)
    public func JSONDictionary() -> [NSObject : AnyObject]!

   ....
}

这在我看来是可以的。但是领域的Object (RLMObjectBase的子类)由于某种原因并没有继承init!(JSONDictionary dictionary: [NSObject : AnyObject]!)。现在没有了。如有任何建议,将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2015-10-13 02:09:45

子类只有在不定义自己的初始化程序时才继承它的超类初始化器。

您只能在RLMObjectBase类扩展中定义方便的初始化器:

代码语言:javascript
运行
AI代码解释
复制
extension RLMObjectBase {
    ...
    convenience init!(JSONDictionary dictionary: [NSObject : AnyObject]!) { ... }
    ...
}

如果子类没有初始化器,它们将由子类继承:

代码语言:javascript
运行
AI代码解释
复制
class MyCustomRLMObject: RLMObjectBase {
   // no initializers
   ...
}

let object = MyCustomRLMObject(JSONDictionary: d)

而且,如果仅在应用程序中使用它,则不需要将其设置为public

类似的例子,但适用于UIViewController

代码语言:javascript
运行
AI代码解释
复制
extension UIViewController {
    convenience init(nibName: String) {
        self.init(nibName: nibName, bundle: nil)
    }
}

class MyViewController: UIViewController {
}

let vc = MyViewController(nibName: "MyViewController")
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33099242

复制
相关文章
Swift基础 继承
翻译自:https://docs.swift.org/swift-book/LanguageGuide/Inheritance.html
郭顺发
2023/07/17
1170
Swift2.1-继承继承
一个类可以从另一个类继承方法,属性和其他的特性。当一个类从另一个类继承的时候,继承类被称为子类,这个类继承的类被称为父类。在Swift中,继承是基本的,从Swift中的其他类型来区分类的一种行为。
hrscy
2018/08/30
4620
Swift专题讲解十四——继承 原
        Swift中,一个类可以从另一个类继承方法、属性、下标及其他特性。当一个类继承于另一个类时,这个类被称为子类,所继承的类被称为父类。在Swift中,继承是类区别于其他类型的主要特征。子类除了可以调用父类的属性,下标,方法外,其也可以对父类的属性,下标,方法进行覆写。
珲少
2018/08/15
2870
Swift的属性,方法,下标脚本以及继承
从这篇章节起,Swift编程语言指南大部分的重要内容在于概念,代码并非太多。理解Swift的面向对象理念,语法以及类结构,构造析构过程对于非常好的应用Swift语言将会有比較大的帮助。
全栈程序员站长
2022/07/14
8880
Swift的属性,方法,下标脚本以及继承
Swift vs. Kotlin 漫谈系列之类与继承
Kotlin 君和 Swift 君在一个团队一起开发已经很久了,由于平台的差异性,他们经常会进行一些技术上的交流(PK),《Kotlin vs. Swift漫谈》系列就是他们在互相切磋是的语录。内容会
用户1907613
2018/07/20
3.7K0
Swift中? 、! 和 ??
Swift中是可以声明一个没有初始值的属性, Swift中引入了可选类型(Optional)来解决这一问题。它的定义是通过在类型声明后加一个 ? 操作符完成的。 例如: var name: Stri
赵哥窟
2020/08/17
1.6K0
窥探Swift之类的继承与类的访问权限
  上一篇博客《窥探Swift之别具一格的Struct和Class》的博客可谓是给Swift中的类开了个头。关于类的内容还有很多,今天就来搞一下类中的继承以及类的访问权限。说到类的继承,接触过面向对象编程(OOP)的小伙伴并不陌生,继承就是OOP编程中几大特征之一,所以还是有必要把类的继承拎出来聊聊的。说到访问权限,这个在OOP编程中也是不可或缺的。如果你接触过其他OOP的语言,你应该对private, public, protected并不陌生。在Swift这么面向对象的编程语言中,也有类似的概念,不过其
lizelu
2018/01/11
1.5K0
窥探Swift之类的继承与类的访问权限
Python中类的继承、多层继承和多继承
继承的语法为在类名后的小括号()中写入要继承的父类名,如果要继承多个类则中间用逗号分隔。
Python碎片公众号
2021/02/26
5.5K0
Python中类的继承、多层继承和多继承
C++继承中的多继承语法与菱形继承
vbptr全称:virtual base pointer虚基类指针,指向vbtable ,virtual base table 虚基类列表。
CtrlX
2022/09/23
7400
[Swift] Swift 中的遍历
上一篇曾经说过,2020 年我接触了项目管理、iOS 开发、goLang 开发,所以,后续更新的内容也会逐步丰富起来。
CnPeng
2021/01/18
3.3K0
[Swift] Swift 中的遍历
Swift中的for循环
前言 任何语言中最常用的就是for循环了 但是Swift的for循环语法一直在变 基本遍历 //0到9 for i in (0..<10) { print(i) } //0到10 for i in (0...10) { print(i) } 反向遍历 for i in (0..<10).reversed() { print(i) } 数组遍历 for item in list { print(item) } 数组遍历 获取索引 for (index, element) in
码客说
2019/10/22
5.6K0
Swift 中的 async/await
async-await 是在 WWDC 2021 期间的 Swift 5.5 中的结构化并发变化的一部分。Swift中的并发性意味着允许多段代码同时运行。这是一个非常简化的描述,但它应该让你知道 Swift 中的并发性对你的应用程序的性能是多么重要。有了新的 async 方法和 await 语句,我们可以定义方法来进行异步工作。
韦弦zhy
2022/11/11
3.5K0
Swift 中的 async/await
Swift 中的 Task
Swift 中的 Task 是 WWDC 2021 引入的并发框架的一部分。任务允许我们从非并发方法创建并发环境,使用 async/await 调用方法。
韦弦zhy
2022/11/11
3.4K0
Swift 中的 Task
swift中array、dictionary内存布局swift中array、dictionary内存布局
1、array的内存布局 2、Dictionary内存布局 key、value的链表中的值并非连续存在内存中;
用户8893176
2021/08/09
6710
swift中array、dictionary内存布局swift中array、dictionary内存布局
less中的继承
经过上一篇 less中的层级结构 的讲解之后,本章节开展的内容为 less 中的继承,还是一样的老套路来引出 less 中的继承,先来看一段代码如下
程序员 NEO
2023/09/29
2320
less中的继承
js中的继承
特点:实例可继承的属性有:实例的构造函数的属性,父类构造函数属性,父类原型的属性。(新实例不会继承父类实例的属性!) 缺点:新实例无法向父类构造函数传参
用户10562852
2023/06/04
1.1K0
js中的继承
Swift 中的 AsyncSequence
AsyncSequence是并发性框架和SE-298提案的一部分。它的名字意味着它是一个提供异步、顺序和迭代访问其元素的类型。换句话说:它是我们在Swift中熟悉的常规序列的一个异步变体。
韦弦zhy
2022/11/16
1.4K0
Python中的继承
python3中使⽤的都是新式类. 如果基类谁都不继承. 那这个类会默认继承 object
星陨1357
2023/03/14
7310
Python中的继承
Python中的继承
面向对象程序语言的一个重要特点是继承。继承提供了在已存在类的基础上创建新类的方法。继承的子类 拥有被继承的父类的所有方法,在此基础上,子类还可以添加自己的专有方法。继承是类的强有力的特点。一些程序不用继承将会非常复杂,用了继承,写起来就会简单扼要,通俗易懂。另外,通过继承,还可以重新利用以前编写的代码,因为你可以对父类的方法进行定制,而并非一定要修改它们。有时,继承反映了问题的自然结构,这样使程序更容易理解。任何事情都有双重性。继承也有可能使程序变得难以阅读。调用一个方法时,有时很难判断它是在哪定义的。相关的代码可能分散在几个模块中。所以,有些事情利用继承的特点能够做好,不利用继承,也可能做的不错。如果问题的自然结构不倾向于用继承解决,那么就不要用,用了反而不好。
我叫什么好
2022/01/07
7420
Sass中的继承
SASS 中的继承和 LESS 中的继承一样,都是通过 并集选择器 来实现的,只不过格式不一样而已
程序员 NEO
2023/09/29
1890
Sass中的继承

相似问题

在R中安装因特软件包

14

科特林的继承

12

在R中安装因特包时出现问题

54

在R演播室安装因特包

10

Swift中的多重继承

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文