ios - 在 Swift 中使用 Backendless 自定义模型类

标签 ios swift backendless

我正在尝试使用我在官方 Backendless 文档上在线找到的函数从在线数据存储中检索数据!但是当我尝试使用像 Lista(我自己的类)对象这样的角色时,出现错误:无法将类型“__NSDictionaryM”(0x10c1ccfc0)的值转换为“InLIsta_.Lista”(0x108439790)。 我在这个网站上搜索,但答案并不特定于 Backendless 案例,所以我希望任何人都可以帮助我

这是我的代码(显然我已经声明了所有 var 并让代码运行必需):

class Lista : NSObject {

    var nome: String?
    var pr: String?
    var pagamento = 0
    var entrato: Bool = false
    var commenti: String?
    var objectId: String?
    var created: NSDate?
    var updated: NSDate?
}

func findQ() {

    Types.tryblock({ () -> Void in

        let startTime = NSDate()

        let found = self.backendless.persistenceService.of(Lista.ofClass()).find(self.query)

        let currentPage = found.getCurrentPage()
        print("Loaded \(currentPage.count) name objects")
        print("Total name in the Backendless storage - \(found.totalObjects)")

        for person in currentPage {
            let persona = person as! Lista  // here i get error
            print("Restaurant <\(Lista.ofClass())> name = \(persona.nome)")
            self.nomi.append(persona.nome!)
        }

        print("Total time (ms) - \(1000*NSDate().timeIntervalSinceDate(startTime))")
        },

                   catchblock: { (exception) -> Void in
                    print("Server reported an error: \(exception as! Fault)")
        }
    )
}

最佳答案

无后端持久化服务有一个方法 -(void)mapTableToClass:(NSString *)tableName type:(Class)type; 您需要为每个自定义类调用该方法,以便它们能够在反序列化期间使用。

self.backendless.persistenceService.mapTableToClass("Lista", type: Lista.self)

这需要在调用持久性服务之前完成。

请注意,如果类未在 obj-c 中定义,则必须将其导出到 obj-c。请注意,这也意味着您不能有任何选项。

理想情况下,您应该使用平台代码生成来创建模型类定义,以确保使用适当的类型创建所有属性。类型不匹配或名称不匹配可能会导致映射到自定义类失败。在当前的 SDK 实现中,Options 总是会失败。

关于ios - 在 Swift 中使用 Backendless 自定义模型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37248524/

相关文章:

ios - 我可以使用 UIRequiredDeviceCapabilities 将应用程序限制为 iPad 和 iPhone 6+ 吗?

iphone - 成就完成处理程序不检测何时没有可用的 Internet 连接

swift - 外围设备未连接 - Swift

flutter - 间接导出的类不可见

ios - Swift/Backendless -Facebook 登录可在 iPhone 上使用,但不能在 iPad 模拟器上使用。如何正确使用Facebook SDK?

iphone - Three20 TTMessageController lite替代品

ios - 将数组数据显示在一个字典中?

json - Swift 代码出错不知道该写什么来返回?

ios - 尝试浏览由 swift 应用程序创建的简单 .sqlite 文件?

android - Backendless multiuser flow - 切换当前用户