Iphone 核心数据NSManagedObject生成函数
我在理解如何使用生成的核心数据时遇到问题Iphone 核心数据NSManagedObject生成函数,iphone,cocoa-touch,core-data,Iphone,Cocoa Touch,Core Data,我在理解如何使用生成的核心数据时遇到问题NSManagedObject h类: @class Product; @interface Category : NSManagedObject { @private } @property (nonatomic, retain) NSString * mName; @property (nonatomic, retain) NSSet* mProduct; @end m类: #import "Category.h" #import "Product
NSManagedObject
h类:
@class Product;
@interface Category : NSManagedObject {
@private
}
@property (nonatomic, retain) NSString * mName;
@property (nonatomic, retain) NSSet* mProduct;
@end
m类:
#import "Category.h"
#import "Product.h"
@implementation Category
@dynamic mName;
@dynamic mProduct;
- (void)addMProductObject:(Product *)value {
NSSet *changedObjects = [[NSSet alloc] initWithObjects:&value count:1];
[self willChangeValueForKey:@"mProduct" withSetMutation:NSKeyValueUnionSetMutation usingObjects:changedObjects];
[[self primitiveValueForKey:@"mProduct"] addObject:value];
[self didChangeValueForKey:@"mProduct" withSetMutation:NSKeyValueUnionSetMutation usingObjects:changedObjects];
[changedObjects release];
}
- (void)removeMProductObject:(Product *)value {
NSSet *changedObjects = [[NSSet alloc] initWithObjects:&value count:1];
[self willChangeValueForKey:@"mProduct" withSetMutation:NSKeyValueMinusSetMutation usingObjects:changedObjects];
[[self primitiveValueForKey:@"mProduct"] removeObject:value];
[self didChangeValueForKey:@"mProduct" withSetMutation:NSKeyValueMinusSetMutation usingObjects:changedObjects];
[changedObjects release];
}
- (void)addMProduct:(NSSet *)value {
[self willChangeValueForKey:@"mProduct" withSetMutation:NSKeyValueUnionSetMutation usingObjects:value];
[[self primitiveValueForKey:@"mProduct"] unionSet:value];
[self didChangeValueForKey:@"mProduct" withSetMutation:NSKeyValueUnionSetMutation usingObjects:value];
}
- (void)removeMProduct:(NSSet *)value {
[self willChangeValueForKey:@"mProduct" withSetMutation:NSKeyValueMinusSetMutation usingObjects:value];
[[self primitiveValueForKey:@"mProduct"] minusSet:value];
[self didChangeValueForKey:@"mProduct" withSetMutation:NSKeyValueMinusSetMutation usingObjects:value];
}
@end
如何将产品
添加到类别
?默认情况下,当我尝试此操作时,这些函数(-(void)addmpProductObject:(Product*)值
等)不可见:
Product *product = (Product*)[NSEntityDescription insertNewObjectForEntityForName:@"Product" inManagedObjectContext:[self managedObjectContext]];;
...
Category *cat = (Category*)[NSEntityDescription insertNewObjectForEntityForName:@"Category" inManagedObjectContext:[self managedObjectContext]];
...
[cat addMProductObject:product];
警告:“类别”可能不响应“-addMProductObject:”
我能否在Category.h中声明这些函数,以便它们可见并正常使用?
在xcode 4之前(我想),这些函数是在.h文件中声明的,我可以在没有警告的情况下使用。我相信这些功能看起来也有点不同。我正在创建一个新的核心数据项目,这对我来说是新的。是的,只需在.h文件中声明它们。我认为有一种方法可以让Xcode自动将声明放在那里
编辑:是的,您可以将关系从模型编辑器复制并粘贴到您的.h文件中 是的,只需在.h文件中声明它们。我认为有一种方法可以让Xcode自动将声明放在那里
编辑:是的,您可以将关系从模型编辑器复制并粘贴到您的.h文件中 首先,.h文件中没有定义您的
addMProductObject
。
由于该编译器认为它可能会导致Category类不响应它
此外,请注意以下事项:
您是否将其用于OS10.7SDK?
如果是,也许即使是iOS 5 beta版上的LLVM编译器,我没有检查,问题可能是:
类别
已作为SDK中的名称。
在Lion SDK中,SDK中已经定义了单词Category
(因为存在类类别)
尝试将类名更改为其他名称。首先,.h文件中未定义您的
addMProductObject
。
由于该编译器认为它可能会导致Category类不响应它
此外,请注意以下事项:
您是否将其用于OS10.7SDK?
如果是,也许即使是iOS 5 beta版上的LLVM编译器,我没有检查,问题可能是:
类别
已作为SDK中的名称。
在Lion SDK中,SDK中已经定义了单词Category
(因为存在类类别)
尝试将类名更改为其他名称。谢谢您提出的名称更改建议。我已经做了更改,以消除任何未来的名称冲突问题。谢谢您的名称更改建议。我已经做出了改变,以消除任何未来的名称冲突问题。你救了我一天。谢谢你,你救了我一天。非常感谢。