我怎样在我的代码中使 kMyCustomName = 1 和 kMyOtherCustomName = 2 成为全局变量?

17 浏览
0 Comments

我怎样在我的代码中使 kMyCustomName = 1 和 kMyOtherCustomName = 2 成为全局变量?

这个问题已经有了答案

Objective-C中的常量

我有以下函数:

+ (int)isCorrectOnServer:(int)num {
// some code performs here...
if (this)
{
    result = 2;
}
else if (this2)
{
    result = 1;
}
else
{
    result = 0;
}
return result; }

我希望它返回这样的结果:

+ (int)isCorrectOnServer:(int)num {
// some code performs here...
if (this)
{
    result = kOnServer;
}
else if (this2)
{
    result = kWrongType;
}
else
{
    result = kNotOnServer;
}
return result; }

所以我可以在我的代码中的任何地方调用:

if ([Helper isCorrectOnServer:276872] == kOnServer)

这样使我的代码更简洁,不会显示0、1或2作为结果。如何最好地解决这个问题?

admin 更改状态以发布 2023年5月22日
0
0 Comments

将内容添加到您项目的前缀头文件中,通常命名为prefix.pch

或者,更加干净的解决方案是创建一个常量文件,如contants.h并将此文件包含在您的前缀头文件中。

Prefix.pch

#include Contants.h

Contants.h

#define kMyCustomName 1 
#define kMyOtherCustomName 2

0
0 Comments

当你不确定的时候,参考苹果的做法。在 UIKit 的任何头文件中,你都会看到枚举被用于任何具有有限选项的值。

只需要在头文件中放置这个:

typedef enum {
    MYCustomTypeOne,
    MYCustomTypeTwo,
    MyCustomTypeEtcetera
} MYCustomType;

使用适当的枚举定义,你可以定义一个方法,比如这样:

+(BOOL)isCustomTypeCorrectOnServer:(MYCustomType)type;

然后 Xcode 可以自动完成参数。如果你在 switch case 中使用该值,编译器可以做出更好的假设。

0