подпись метода управляемого объекта - PullRequest
0 голосов
/ 12 декабря 2010

У меня есть объекты, указанные ниже; следующее предупреждение для addCratesObject в методе initFruitStand. Почему он жалуется, что не соответствует подписи, хотя и соответствует? В чем проблема?

В функции '- [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

Ответы [ 2 ]

1 голос
/ 13 декабря 2010

Как сказал Лес;«Это довольно странно, Гас».

Попробуйте очистить проект и восстановить его.Или используйте пункт меню «Preprocess», чтобы показать, что компилятор пытается скомпилировать для MyViewController.mПосмотрите, что, по мнению компилятора, определение FruitStand находится внутри этого блока компиляции.

0 голосов
/ 13 декабря 2010

В любом случае я нашел проблему. есть другая версия того же файла в другой папке, которая, кажется, удалена, но все еще существует и вызывает предупреждение.

...