6
votes

I have an object called List which subclasses Realm's Object class:

class List: Object {
    dynamic var brandListItems: [BrandListItem] = []
}

and another object, BrandListItem which also subclasses to Object:

class BrandListItem: Object {
    dynamic var brandID: String?
    dynamic var name: String?
}

My app is crashing with the following error

'Property 'brandListItems' is declared as 'NSArray', which is not a supported RLMObject property type. All properties must be primitives, NSString, NSDate, NSData, NSNumber, RLMArray, RLMLinkingObjects, or subclasses of RLMObject.

I tried doing something like RLMArray<BrandListItem>() with no luck. How do I successfully save these objects to Realm?

1

1 Answers

6
votes

You need to use Realm's List<T> property. Note that it's not marked dynamic

https://realm.io/docs/swift/latest/#to-many-relationships

class List: Object {
   let brandListItems = RealmSwift.List<BrandListItem>()
}

Note that it's necessary to qualify Realm Swift's List<T> with its module to disambiguate it from your newly-declared List class.