Ios 类类别中的方法不能用作实例方法

Ios 类类别中的方法不能用作实例方法,ios,objective-c-category,Ios,Objective C Category,在我的项目中,我有两个NSManageObjects(生成的核心数据)。对于这两个对象,我使用名为containsToday的实例方法创建了一个类别 问题是只有对象liselement的方法有效。调用对象NamedRangeI get的方法时(与类方法相同): -[NSManagedObject containsToday]:发送到实例的选择器无法识别 下面是一些代码: 列表元素: #import <Foundation/Foundation.h> #import <CoreD

在我的项目中,我有两个
NSManageObjects
(生成的核心数据)。对于这两个对象,我使用名为
containsToday
的实例方法创建了一个类别

问题是只有对象
liselement
的方法有效。调用对象
NamedRange
I get的方法时(与类方法相同):

-[NSManagedObject containsToday]:发送到实例的选择器无法识别

下面是一些代码:

列表元素:

#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(新增内容):


您可能没有在数据模型中正确设置实体类。该消息表示它正试图对类
NSManagedObject
的对象调用该方法,而不是派生类的实例


在XCode中,打开数据模型,选择ListElement实体,然后打开右侧的数据模型检查器(在工具栏中),检查实体类是否正确。如果我是正确的,我想您会发现它当前仍然设置为NSManagedObject

+
方法是类方法。要使用这些,您必须执行
[NamedRange containsToday:object]
谢谢,这就是问题所在。没有为“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
#import "ListElement.h"

@interface ListElement (Additions)

- (BOOL) containsToday;

@end
#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