Ios 正确使用Foundation\u导出

Ios 正确使用Foundation\u导出,ios,objective-c,Ios,Objective C,我有一个名为Event.h的文件: @interface Event : NSObject FOUNDATION_EXPORT NSString * const KP_STATUS_NEW FOUNDATION_EXPORT NSString * const KP_STATUS_APPROVED FOUNDATION_EXPORT NSString * const KP_STATUS_DELETED @property (nonatomic, strong) NSString * name;

我有一个名为Event.h的文件:

@interface Event : NSObject

FOUNDATION_EXPORT NSString * const KP_STATUS_NEW
FOUNDATION_EXPORT NSString * const KP_STATUS_APPROVED
FOUNDATION_EXPORT NSString * const KP_STATUS_DELETED

@property (nonatomic, strong) NSString * name;
@property (nonatomic, strong) NSString * description;
@property (nonatomic, strong) NSString * status
我希望使用我的SDK的程序员能够访问
状态
字符串,特别是在设置事件对象的状态时。我应该像上面那样使用FOUNDATION_导出吗

这样程序员就可以

Event * myEvent = [[Event alloc] init];
myEvent.status = STATUS_NEW;
?

在objective-c中就是这样做的吗


顺便说一下,KP是项目的通用前缀。我应该在状态前面加上KP还是其他什么?标准是什么?

你可以使用
extern
,而不是
FOUNDATION\u EXPORT
(我相信这就是它的定义)

考虑到Objective-C中缺少名称空间,使用公共前缀是一个好主意,对于名为
Event
的类来说,这是一个非常常见的名称

像这样的东西,在我看来没问题:

#import "KPEvent.h"

KPEvent * myEvent = [[KPEvent alloc] init];
myEvent.status = KP_STATUS_NEW;
或者更好:

myEvent.status = KP_EVENT_STATUS_NEW;
如果状态仅与事件类相关

您没有解释的是为什么不能使用更优雅的
枚举

typedef enum {
    KP_EVENT_STATUS_NEW,
    KP_EVENT_STATUS_APPROVED,
    KP_EVENT_STATUS_DELETED
} KpEventStatus;

你可以忘记代码< ExtNux/Cuff>废话.< /P> <代码>基础出口导出>代码> >代码>外部代码>代码,当C++导入头时,它也能正常工作。(它在Windows上也能正常工作,但这很少引起关注。)也就是说,我几乎总是使用

extern