свойство объекта в target-c - PullRequest
       2

свойство объекта в target-c

0 голосов
/ 07 октября 2011
@interface Category : NSObject

@property(nonatomic) NSInteger ID;
@property(nonatomic, retain) NSString *Name;
@property(nonatomic, retain) NSString *Description;

@end

Класс продукции

@interface Product : NSObject

@property(nonatomic) NSInteger ID;
@property(nonatomic, retain) NSString *Name;
@property(nonatomic, retain) NSString *Description;

@ свойство (неатомное, сохраняемое) Категория * категория;

@end

Как мне создать свойство типа Категория. Возможно ли это вообще?

Ответы [ 3 ]

3 голосов
/ 07 октября 2011

Вы делаете это так же, как и вы, за исключением того, что вам нужно добавить предварительное объявление вашего класса Category в Product.h (перед строкой @interface):

@Class Category;

и затем импортировать заголовок вProduct.m

#import "Category.h"
1 голос
/ 07 октября 2011

Да, это возможно, и вы указали правильный синтаксис. Если у вас возникла проблема, возможно, это связано с тем, что вам нужно сделать

#import "Category.h"

в верхней части Product.h, и вам нужно убедиться, что категория @synthesize. Но так как вы использовали другие свойства, я полагаю, вы уже знали это.

1 голос
/ 07 октября 2011

1) Если ваш класс Product определен в отдельном файле, то:

#import "Category.h" // file, where class Category is defined

@interface Product : NSObject

@property(nonatomic) NSInteger ID;
@property(nonatomic, retain) NSString *Name;
@property(nonatomic, retain) NSString *Description;
@property(nonatomic, retain) Category *category;

@end

2) Если ваши классы Product и Category определены в одном и том же файле, вам не нужны дополнительные import, но убедитесь, что класс Categiry определен раньше, чем Product.

3) В случае, когда два класса имеют объекты типа друг друга, вы должны использовать тег @class:

@class Product;

@interface Category : NSObject
@property(nonatomic, retain) Product *product;
@end

@interface Product : NSObject
@property(nonatomic, retain) Category *category;
@end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...