0

我管理了下面给出的对象;以下为 initFruitStand 方法中的 addCratesObject 引发的警告。为什么它抱怨它不匹配签名虽然它匹配?问题是什么?

在函数'-[FruitStandViewController initFruitStand:]'中:

'FruitStand' 可能不会响应 -addCratesObject:

'(没有匹配方法签名的消息将被假定返回'id'并接受'...'作为参数。)

我的视图控制器.m

#import "FruitStand.h"
#import "Crate.h"

- (IBAction) initFruitStand: (id) sender {
    FruitStand * stand = (FruitStand *) [NSEntityDescription 
        insertNewObjectForEntityForName:@"FruitStand" 
        inManagedObjectContext:self.managedObjectContext];

    Crate * crateOne = (Crate *) [NSEntityDescription   
        insertNewObjectForEntityForName:@"Crate" 
        inManagedObjectContext:self.managedObjectContext];

    [stand addCratesObject:crateOne];
}

FruitStand.h

#import <CoreData/CoreData.h>
@class Crate;
@interface FruitStand :  NSManagedObject  
{
}
@property (nonatomic, retain) NSString* standName;
@property (nonatomic, retain) NSSet* crates;
@end

@interface FruitStand (CoreDataGeneratedAccessors)
- (void)addCratesObject:(Crate *)value;
- (void)removeCratesObject:(Crate *)value;
- (void)addCrates:(NSSet *)value;
- (void)removeCrates:(NSSet *)value;
@end

FruitStand.m

#import "FruitStand.h"
#import "Crate.h"
@implementation FruitStand
@dynamic standName;
@dynamic crates;
@end

板条箱.h

#import <CoreData/CoreData.h>
@interface Crate :  NSManagedObject  
{
}
@property (nonatomic, retain) NSSet* fruits;
@end

@interface Crate (CoreDataGeneratedAccessors)
- (void)addFruitsObject:(NSManagedObject *)value;
- (void)removeFruitsObject:(NSManagedObject *)value;
- (void)addFruits:(NSSet *)value;
- (void)removeFruits:(NSSet *)value;
@end

板条箱.m

#import "Crate.h"
@implementation Crate 
@dynamic fruits;
@end
4

2 回答 2

0

正如莱斯所说;“这很奇怪,格斯。”

尝试清理项目并重建。或者,使用“预处理”菜单项来显示编译器试图为 MyViewController.m 编译的内容。查看编译器认为 FruitStand 的定义在该编译单元中的内容。

于 2010-12-12T21:02:14.007 回答
0

反正我发现了问题。另一个文件夹中存在同一文件的另一个版本,该文件似乎已被删除但仍然存在并导致警告。

于 2010-12-13T16:48:52.033 回答