我想将我的课程用作项目中的属性。这个想法是我有一个包含所有列表元素的类。我在下面的图形中显示的基本思想:
所以我有一个myContainerClass对象,我想在其他一些类中做:
@property(强,非原子)MyContainerClass * obj;
在这里我有错误!我发现我只能将Foundations类型用作@property。但为什么?什么是这样做(传递对象)的替代品?

最佳答案

不,您可以将任何您喜欢的类用作属性

@property (nonatomic, strong) MyContainerClass* obj;


如果编译器知道MyContainerClass是一个类,则完全合法。为此,最好的方法是使用@class前向声明:

@class MyContainerClass;

@interface SomeOtherClass : NSObject

// method an property declarations

@property (nonatomic, strong) MyContainerClass* obj;

@end


然后在实现中包含头文件:

#import "MyContainerClass.h"

@implementation SomeOtherClass

@synthesize obj;

// other stuff

@end

关于objective-c - NSObject子类作为属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10395438/

10-13 07:37