gpt4 book ai didi

ios - iOS 10上的'String'导致Realm崩溃

转载 作者:行者123 更新时间:2023-12-01 16:19:45 27 4
gpt4 key购买 nike

我最近发布了我们应用的新版本,并且在Beta测试期间,它在所有iOS 10设备上崩溃,但在其他版本上却没有崩溃。由于我们有Crashlytics,我们在后端发现了一个奇怪的崩溃消息,我们可以确认这是所有iOS 10崩溃的原因,因为它是100%iOS 10,大约有40个。
内容如下:
致命异常:RLMException
属性Article.id声明为String,这不是受支持的托管对象属性类型。如果不应将其作为托管属性,请将其添加到ignoredProperties()或不将其声明为@objc dynamic。有关更多信息,请参见https://realm.io/docs/swift/latest/api/Classes/Object.html
这是对象:

class Article: Object {

@objc dynamic var id: String = UUID().uuidString
// others...

override static func primaryKey() -> String? {
return "id"
}
}
如您所见,这完全是名义上的,并且可以在其他iOS上正常运行。在Realm的文档中,完全可以说是将String与 @objc dynamic一起使用,并且绝对不可能不受支持。我怀疑 Article.id没什么特别的,而且因为 ArticleA开头,所以它恰好是所有领域对象的第一个String属性。也许所有Strings都无法在iOS 10上正常工作?
谁能提供一些建议或见解?(请不要说放弃iOS 10支持之类的东西。目前,我们需要它。)

最佳答案

我们几次遇到同一问题,试图将Realm完全拖到Swift中。这并不是真正的答案,而更多的是我们需要向后兼容时成功的解决方法。
这是一个ObjC对象,而不是Swift。
桥接正在发生某些事情,可能是符合NSCopy的要求,或者是类似的事情,因此只需将其更改为read

@objc dynamic var id = NSUUID().uuidString
请参阅 Models部分中的《入门指南》,该指南要求使用NSUUID

NSUUID:表示桥接的通用唯一值的对象
到UUID;当您需要引用语义或其他语义时,请使用NSUUID
基金会特定行为。

关于ios - iOS 10上的'String'导致Realm崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63542635/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com