0

以下のオブジェクトを管理しています。initFruitStand メソッドの addCratesObject に対して次の警告が発生しました。署名は一致するのに一致しないと不平を言うのはなぜですか? 何が問題ですか?

関数 '-[FruitStandViewController initFruitStand:]':

「FruitStand」は -addCratesObject に応答しない場合があります:

'(一致するメソッド シグネチャのないメッセージは、'id' を返し、'...' を引数として受け入れると見なされます。)

MyViewController.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

Crates.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

Crates.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 に答える