gpt4 book ai didi

ios - 正确使用 Foundation_EXPORT

转载 作者:可可西里 更新时间:2023-11-01 03:57:04 25 4
gpt4 key购买 nike

我有一个名为 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 的程序员能够访问 STATUS 字符串,尤其是在为 Event 对象设置状态时。我应该像上面那样使用 FOUNDATION_EXPORT 吗?

这样程序员就可以做到

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

?

在 objective-c 中就是这样吗?

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

最佳答案

您可以只使用 extern,而不是 FOUNDATION_EXPORT(我相信这是它的定义)。

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

所以像这样的东西,我觉得还可以:

#import "KPEvent.h"

KPEvent * myEvent = [[KPEvent alloc] init];
myEvent.status = KP_STATUS_NEW;

或者更好:

myEvent.status = KP_EVENT_STATUS_NEW;

如果状态仅与事件类相关。

你没有解释的是为什么你不能使用更优雅的 enum:

typedef enum {
KP_EVENT_STATUS_NEW,
KP_EVENT_STATUS_APPROVED,
KP_EVENT_STATUS_DELETED
} KpEventStatus;

你可以忘掉那个 extern 废话。

关于ios - 正确使用 Foundation_EXPORT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19935544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com