我在理解如何使用我的核心數據生成NSManagedObject
時遇到了問題。核心數據NSManagedObject生成的函數
Category.h:
@class Product;
@interface Category : NSManagedObject {
@private
}
@property (nonatomic, retain) NSString * mName;
@property (nonatomic, retain) NSSet* mProduct;
@end
Category.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
如何將Product
添加到Category
?默認情況下,這些函數(- (void)addMProductObject:(Product *)value
等)在我嘗試時不可見:
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文件中聲明,我可以使用不帶警告。我相信功能看起來也有點不同。我正在創建一個新的核心數據項目,這對我來說是新的。
你救了我的一天。謝謝。 – viral