在我的项目中,我有两个NSManageObjects
(生成核心数据)。对于这两个对象,我创建了一个名为containsToday
的实例方法的类别。
问题是只有对象ListElement
的方法有效。在调用对象NamedRange
的方法时,我得到了(与类方法相同的方法):
- [NSManagedObject containsToday]:无法识别的选择器发送到实例...
以下是一些代码:
ListElement:
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@class ListImage, TLList;
@interface ListElement : NSManagedObject
@property (nonatomic, retain) NSString * agn;
@property (nonatomic, retain) NSString * aid;
@property (nonatomic, retain) NSString * date;
@property (nonatomic, retain) NSString * iid;
@property (nonatomic, retain) NSNumber * indx;
@property (nonatomic, retain) NSNumber * mark;
@property (nonatomic, retain) NSString * oid;
@property (nonatomic, retain) NSString * tcd;
@property (nonatomic, retain) NSString * ted;
@property (nonatomic, retain) NSNumber * cxl;
@property (nonatomic, retain) NSString * oti;
@property (nonatomic, retain) ListImage *listImage;
@property (nonatomic, retain) TLList *tlList;
@end
NamedRange:
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@interface NamedRange : NSManagedObject
@property (nonatomic, retain) NSString * tid;
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSString * sta;
@property (nonatomic, retain) NSString * end;
@end
ListElement(Additions):
#import "ListElement.h"
@interface ListElement (Additions)
- (BOOL) containsToday;
@end
NamedRange(Additions):
#import "NamedRange.h"
@interface NamedRange (Additions)
#warning TODO - why does this not work as instance method (for ListElement it works)?
+ (BOOL) containsToday:(NamedRange*)nr;
- (BOOL) containsToday;
@end
答案 0 :(得分:1)
您可能没有正确设置数据模型中的实体类。该消息表明它正在尝试在类NSManagedObject
的对象上调用该方法,而不是派生类的实例。
在XCode中,打开数据模型,选择ListElement实体,然后打开右侧的数据模型检查器(在“实用工具”栏中)并检查实体类是否正确。如果我是正确的,我认为你会发现它目前仍然设置为NSManagedObject。