【问题标题】:Realm + NSClassFromString领域 + NSClassFromString
【发布时间】:2016-10-11 14:16:05
【问题描述】:

大家好,感谢您阅读本文。

我是 Realm 的新手,我被一个无法弄清楚如何构建的功能所困扰。我的意图是拥有一个名为func delete(className:String, id:Int){ 的函数,它应该能够通过其ID 删除任何Realm 类的任何对象。函数内部代码为:

func delete(objectNameV:String, id:Int){

   let theClass = NSClassFromString(objectNameV)

   // Get the default Realm
   let realm = try! Realm()
   let queryResult = realm.objects(theClass as! Object.Type).filter("id = \(id)")
   try! realm.write {
      realm.delete(queryResult)
   }
}

但事实是let theClass = NSClassFromString(objectNameV) 总是 NIL。

感谢您的帮助,我只需要一个函数,该函数给出一个领域类名,并且该类的对象的 id 可以删除它

领域版本:2.0.1 Xcode 版本:8

【问题讨论】:

  • 我认为您应该传递 object:Object 参数而不是 objectNameV:String 参数,并将查询更新为 realm.objects(object.self).filter("id = (id)")

标签: realm swift3


【解决方案1】:

According to the Apple developer docs,Swift 中的类由它们的模块名称命名。所以只写类名是不够的;您还必须包括他们的模块名称。

Apple 在其网站上使用的示例是:

let myPersonClass: AnyClass? = NSClassFromString("MyGreatApp.Person")

【讨论】:

  • 我看到并尝试了,但根本没有好的结果。您或任何人都可以尝试吗?无论如何,明天我会在这里进一步查看并发表评论。
猜你喜欢
  • 1970-01-01
  • 2014-07-24
  • 1970-01-01
  • 2010-12-20
  • 2011-04-03
  • 2012-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多