将对象持久化为RealmSwift对象类型时出错'';在领域'; Ok找到了问题
我启动了一个线程,从web获取成员,并立即使用RxSwift将查询结果作为可观察结果返回,如下所示:将对象持久化为RealmSwift对象类型时出错'';在领域'; Ok找到了问题,swift,realm,Swift,Realm,我启动了一个线程,从web获取成员,并立即使用RxSwift将查询结果作为可观察结果返回,如下所示: func getBoardMembersGroupedByType() -> Observable<[MemberType: [Member]]> { MeetingRest().getBoardMembers() .subscribeOn(OperationQueueScheduler(operationQueue: NSOperationQueue
func getBoardMembersGroupedByType() -> Observable<[MemberType: [Member]]> {
MeetingRest().getBoardMembers()
.subscribeOn(OperationQueueScheduler(operationQueue: NSOperationQueue()))
.subscribeNext { members in DataManager().updateOrInsertObjects(members) }
.addDisposableTo(bag)
return DataManager().getObjects(Member)
.map{ members in members.groupedBy { member in member.memberTypeEnum }
}
}
以下是领域对象的代码定义:
class Entity: Object {
dynamic var id: Int64 = 0
override static func primaryKey() -> String? {
return "id"
}
}
class Member: Entity {
dynamic var name: String!
dynamic var email: String!
dynamic var role: String!
dynamic var curriculumUrl: String!
dynamic var curriculumThumbnailUrl: String!
dynamic var pictureUrl: String!
private dynamic var memberType: String!
let phoneNumbers = List<PhoneNumber>()
var memberTypeEnum: MemberType {
return MemberType(rawValue: memberType) ?? .Member
}
}
enum MemberType: String {
case Member
case Secretary
}
class PhoneNumber: Object {
dynamic var number: String!
dynamic var phoneType: String!
}
你能告诉我们发生错误的代码吗?最好的方法是将对象写入领域的代码。@Jurik编辑了这篇文章,提供了更多细节。基本上,当我尝试实例化成员类型时,它会抛出。我无法重现您在这里看到的内容。在您定义类
PhoneNumber
的范围内,是否还有其他名为Object
的类?然后,您需要显式地从RealmSwift.Object
继承。您能与我们共享发生错误的代码吗?最好的方法是将对象写入领域的代码。@Jurik编辑了这篇文章,提供了更多细节。基本上,当我尝试实例化成员类型时,它会抛出。我无法重现您在这里看到的内容。在您定义类PhoneNumber
的范围内,是否还有其他名为Object
的类?然后您需要显式地从RealmSwift.Object
继承。
class Entity: Object {
dynamic var id: Int64 = 0
override static func primaryKey() -> String? {
return "id"
}
}
class Member: Entity {
dynamic var name: String!
dynamic var email: String!
dynamic var role: String!
dynamic var curriculumUrl: String!
dynamic var curriculumThumbnailUrl: String!
dynamic var pictureUrl: String!
private dynamic var memberType: String!
let phoneNumbers = List<PhoneNumber>()
var memberTypeEnum: MemberType {
return MemberType(rawValue: memberType) ?? .Member
}
}
enum MemberType: String {
case Member
case Secretary
}
class PhoneNumber: Object {
dynamic var number: String!
dynamic var phoneType: String!
}
{
"id": 834,
"name": "Sallie Oneil",
"email": "sallieoneil@zillan.com",
"pictureUrl": "http://placehold.it/100x100",
"phoneNumbers": [
{
"number": "(998) 477-2928",
"phoneType": "Work"
},
{
"number": "(898) 467-2201",
"phoneType": "Mobile"
},
{
"number": "(963) 412-3882",
"phoneType": "Mobile"
},
{
"number": "(924) 409-2270",
"phoneType": "Mobile"
}
],
"role": "eu",
"curriculumUrl": "http://placehold.it/100x200",
"curriculumThumbnailUrl": "http://placehold.it/100x200",
"memberType": "Member"
}