Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 核心数据NSManagedObject生成函数_Iphone_Cocoa Touch_Core Data - Fatal编程技术网

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
(因为存在类类别)


尝试将类名更改为其他名称。

谢谢您提出的名称更改建议。我已经做了更改,以消除任何未来的名称冲突问题。谢谢您的名称更改建议。我已经做出了改变,以消除任何未来的名称冲突问题。你救了我一天。谢谢你,你救了我一天。非常感谢。