gpt4 book ai didi

ios - 如何隐藏我在静态库中定义的常量?

转载 作者:行者123 更新时间:2023-12-01 19:21:25 24 4
gpt4 key购买 nike

我有自己的图书馆。并且在标题中定义了很多常量(例如动画持续时间)。但是,我所有的标题都是可见和可变的。如何防止其他人更改我的默认值?

Apple 库的 header 中有一些 const 值,如下所示:

CA_EXTERN NSString * const kCATransitionMoveIn
__OSX_AVAILABLE_STARTING (__MAC_10_5, __IPHONE_2_0);

最佳答案

Objective-C 仍然是 C。也许旧系统有问题,这就是为什么你会在那里看到宏。无论如何,使用任何内置类型仍然应该是安全的。

如果您将某些内容声明为“extern”,编译器会将其视为“好的,我看到有人声明了外部事物。我不必知道它是什么,因为某些外部单元会定义它。链接器将处理其余的。

那段话会让我对 C 警察有麻烦,但它已经足够接近实际解释了。因此,您可以在头文件中执行此操作...

extern int const TheAnswerToLifeTheUniverseAndEverything;

然后,在您的一个实现文件中(@implementation/@end 部分之外)...
int const TheAnswerToLifeTheUniverseAndEverything = 42;

请注意,在“现代”Xcode 版本中,您可以对对象执行相同的操作。注意“const”,这意味着我们有一个指向 NSString 的常量指针。
// In header
extern NSString * const TheAnswerToLifeTheUniverseAndEverythingString;

// In source
NSString * const TheAnswerToLifeTheUniverseAndEverythingString = @"42";

关于ios - 如何隐藏我在静态库中定义的常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10230209/

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