小编Kev*_*vin的帖子

CoreData设置关系给出错误' - [WeatherObservation count]:发送到实例的无法识别的选择器

WeatherObservation我是数据模型中的一个实体,我试图将它与另一个Object(一对一)的关系设置为我通过导航控制器传递的.几个星期前就有用了.我更改了模型中的一些其他实体,重新生成了类,并将此关系设置为NSManagedObject,而不是另一个实体的类.我尝试重新生成这个类几次,然后将其更改为应该是什么,并将类添加到.h,#import到.m

我假设[MANAGEDOBJECT count]消息是核心数据魔法的一部分,我不会在我的代码中的任何地方调用它.我不知道从哪里开始,该怎么做,我可以在这里发布什么来帮助得到答案?我试过了:

weather.hiveObservation = hiveObs;
Run Code Online (Sandbox Code Playgroud)

以及

[weather setValue:hiveObs forKey:@"hiveObservation"]
Run Code Online (Sandbox Code Playgroud)

两个都抛出相同的错误,如果我注释掉设置对象保存到持久存储的关系.hiveObs是在旧视图中创建的,但尚未保存...如果这很重要?

编辑:经过思考和添加信息.
我传入的ManagedObject已创建,但在更改视图之前未保存.它在新视图中使用nil值记录,但这可能是问题吗?

核心数据文件
HiveObservation.h

import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>

@class BoxObservation, HiveDetails, WeatherObservation;

@interface HiveObservation : NSManagedObject
... //other properties omitted
@property (nonatomic, retain) HiveDetails *hiveDetail;
@property (nonatomic, retain) WeatherObservation *weatherObservation;
@end

@interface HiveObservation (CoreDataGeneratedAccessors)

- (void)addBoxObservationsObject:(BoxObservation *)value;
- (void)removeBoxObservationsObject:(BoxObservation *)value;
- (void)addBoxObservations:(NSSet *)values;
- (void)removeBoxObservations:(NSSet *)values;

@end
Run Code Online (Sandbox Code Playgroud)

WeatherObservation.h

#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>

@class HiveObservation;

@interface WeatherObservation : NSManagedObject
//... other properties omitted
@property (nonatomic, …
Run Code Online (Sandbox Code Playgroud)

core-data ios

6
推荐指数
2
解决办法
905
查看次数

标签 统计

core-data ×1

ios ×1