所以我在我的项目中使用了一个领域,我有一个对象“ Pedido”(定购西班牙文),其中有许多“ V3Producto”对象,如下所示:
@interface V3Producto : RLMObject
@property NSString *codeProd; // Este es el código de barras!
@property NSString *codigo;
@property NSNumber<RLMDouble> *descuento;
@property NSString *detailProd;
@property NSInteger idid;
@property NSInteger idCompania;
@property NSNumber<RLMDouble> *priceProd;
@property NSInteger stock;
@property int cantidadComprada;
@property int cantidad; // cantidad de stock
以及“ Pedidos”的代码(订单)
@interface Pedido:RLMObject
@property NSNumber<RLMDouble> *idUbicacion;
@property NSString *fechaPedido;
@property NSString *sucursal;
@property NSNumber<RLMDouble> *filterId;
@property RLMArray<V3Producto*> *productos;
当我运行该应用程序时,加载该应用程序后,我立即收到错误消息:“ RLMException”,原因:“属性'productos'需要定义所包含类型的协议-例如:RLMArray',这很奇怪,因为在添加RLMArray之前工作就好了!任何V3Producto似乎都是完美且有效的RLMObject!
有任何想法吗?
编辑:
我尝试过将“ productos”重命名为其他名称相同的其他线程,但这并不能解决问题。
最佳答案
这是因为在声明RLMArray属性时,必须按照与Realm Docs所包含的对象相同的名称,将其标记为符合协议。
声明RLMArray的Syntex是:-
RLM_ARRAY_TYPE(ObjectType)
@property RLMArray<ObjectType *><ObjectType> *arrayOfObjectTypes;
您的代码应为:-
RLM_ARRAY_TYPE(V3Producto)
@interface Pedido : RLMObject
@property NSNumber <RLMDouble> *idUbicacion;
@property NSString *fechaPedido;
@property NSString *sucursal;
@property NSNumber <RLMDouble> *filterId;
@property RLMArray <V3Producto*> <V3Producto> *productos;
@end