Ошибка: запрос на член theSizes что-то не структура или объединение - PullRequest
0 голосов
/ 14 сентября 2009

Я получаю ту же ошибку, но я проверил, чтобы убедиться, что свойства были установлены правильно в файле .h.

Вот код: NSUInteger theSizesCount = [theWho.theSizes count];

Ошибка: «ошибка: запрос для членов theSizes в чем-то, что не является структурой или объединением. Этот файл .m импортирует 6 файлов .h, и 4 из них имеют те же свойства в WHO, но связаны с различными суперклассами Этот файл .m реализует только один из них, а theho и theSize имеют размеры.

Также в этом коде переменная theSizes имеет зеленый цвет, а переменнаяWho - нет. Кроме того, ошибка возникает в нескольких местах для NSUIntegers, NSMutableArray и т. Д.

Куда я иду не так? Часть кода заголовочного файла приведена ниже.


// TheSize.h

@class TheWho;

@interface TheSize :  NSManagedObject  
{
}

@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSString *amount;
@property (nonatomic, retain) TheWho *theWho;
@property (nonatomic, retain) NSNumber *displayOrder;

@end

и ..

//
// TheWho.h
//


@interface ImageToDataTransformer : NSValueTransformer {
}
@end


@interface TheWho : NSManagedObject {
}

@property (nonatomic, retain) NSString *instructions;
@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSSet *theSize;
@property (nonatomic, retain) UIImage *thumbnailImage;

@property (nonatomic, retain) NSManagedObject *image;
@property (nonatomic, retain) NSManagedObject *type;

@end


@interface TheWho (CoreDataGeneratedAccessors)
- (void)addTheSizesObject:(NSManagedObject *)value;
- (void)removeTheSizesObject:(NSManagedObject *)value;
- (void)addTheSizes:(NSSet *)value;
- (void)removeTheSizes:(NSSet *)value;
@end

Ответы [ 3 ]

1 голос
/ 15 сентября 2009

Я снова проверил свои объявления, и мне пришлось добавить «s» в запись NSSet * theSize. Эти ошибки исчезли. Спасибо всем за помощь.

0 голосов
/ 14 сентября 2009

Вы пытаетесь получить доступ к theWho.theSizes, но, согласно заголовочному файлу, вы должны пытаться theWho.theSize (без конечных s).

Если в этом набрано несколько опечаток, они не были скопированы напрямую.

0 голосов
/ 14 сентября 2009

Вам все еще нужно определить переменные-члены. Директива @property объявляет методы доступа, а не базовые члены.

@interface TheWho : NSManagedObject {
    NSString *instructions;
    NSString *name;
    NSSet *theSize;
    UIImage *thumbnailImage;

    NSManagedObject *image;
    NSManagedObject *type;
}
...