当前位置: 首页 > 知识库问答 >
问题:

Swift 3.0.2 和 Realm - 编译错误

华献
2023-03-14

我在尝试在Swift 3.0.2iOS项目中使用Realm时遇到了一个问题。从简单开始,我想将它应用于一个名为Genre的类:

import Foundation
import RealmSwift

class Genre: Object {
    dynamic var id: Int
    dynamic var name: String

    init?(id: Int, name: String) {
        self.id = id
        self.name = name
        super.init()
    }

}

看起来很简单,对吧?尽管如此,我还是遇到了以下编译错误:

Genre.swift:23:1: 'required' initializer 'init()' must be provided by subclass of 'Object'

Genre.swift:23:1: 'required' initializer 'init(realm:schema:)' must be provided by subclass of 'Object'

Genre.swift:23:1: 'required' initializer 'init(value:schema:)' must be provided by subclass of 'Object'

有人知道我该怎么解决这个问题吗?从我在网上看到的来看,我应该没有必要实现那些方法。

设置:

  • X代码8.2.1
  • Swift 3.0.2
  • 使用Cocoapod安装Realm

共有1个答案

牧业
2023-03-14

在Realm中不可能直接覆盖init

您可以通过将init标记为便利来解决这个问题。

import Foundation
import RealmSwift

class Genre: Object {
    dynamic var id: Int
    dynamic var name: String

    convenience init(id: Int, name: String) {
        self.init()            
        self.id = id
        self.name = name
    }
}
 类似资料:
  • 这是我的Maven命令 对于这个项目 但我面对的是 [错误]没有更多标记-无法分析错误消息:Groovy:无法解析类委托,无法找到用于注释的类[错误]12。D:\Projects\lombok groovy example master\src\main\groovy\prystasj\lombok\example\groovy\Rocket中出错。groovy(第5行)[错误]@数据 mvn—版

  • 问题内容: 我在(版本3.1)中使用。当我尝试编译下一行代码 使用maven-compiler-plugin(版本3.3),我收到编译失败消息: 我使用Java 1.7.0_55进行编译。 我该如何解决? 问题答案: 发生问题是因为方法的签名具有可变参数。调用方法时,将分三个阶段搜索所有适用的方法。在阶段3中搜索具有可变参数的方法,在该阶段中,可以进行装箱和拆箱。 因此和都适用于此处,因为考虑了装

  • 当我尝试运行Developer菜单时,我收到以下错误和警告: GeneXus Java Make V1.0 COM\AlpharOovs\InspectionForm_Impl.Java:220:错误:代码太大public void draw()^注意:COM\AlpharOovs\InspectionForm_Impl.Java使用或重写了不推荐使用的API。注意:有关详细信息,请使用-xlin

  • 问题内容: 当我在Netbeans中构建并运行程序时,它可以正常工作。但是当我尝试“ mvn compile”时,使用相同的pom.xml文件会出现以下错误: 我的Java版本不是1.3,这里是“ mvn -version”的结果 这是第53行: 问题答案: 问题是在Maven2中默认使用和 您可以通过将其添加到pom中来解决此问题: 将其放在最顶层的父pom中是很实际的,这样您派生的pom不需要

  • 我遇到了一个初学者的编译错误: 我的简单程序: 我尝试使用以下命令编译它: gcc-g-Wall-ansi launch_瓷砖。c-o tiles\u程序 并得到这些错误: 启动_tiles。c: 在函数“main”中: launch_tiles. c: 17:19:错误:预期')'之前';'令牌 launch_tiles. c: 17:19:错误:太少的参数函数'fget' /usr/inclu

  • 当我退出我的应用程序时,这个folloeing错误已经产生。