How do a make a kMyCustomName = 1 and kMyOtherCustomName = 2 global in my code?
本问题已经有最佳答案,请猛点这里访问。
有以下功能:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | + (int)isCorrectOnServer:(int)num { // some code performs here... if (this) { result = 2; } else if (this2) { result = 1; } else { result = 0; } return result; } |
我想它的回报,而不是两个这样的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | + (int)isCorrectOnServer:(int)num { // some code performs here... if (this) { result = kOnServer; } else if (this2) { result = kWrongType; } else { result = kNotOnServer; } return result; } |
所以在我的代码中的任何地方可能只是电话:
1 | if ([Helper isCorrectOnServer:276872] == kOnServer) |
让我的两个代码的清洁和没有显示0,1,2,或作为结果。什么是最好的方式去做这个吗?
当有疑问的时候,看看苹果是怎么做的。查看uikit中的任何头文件,您将看到枚举被用于具有有限数量选项的任何类型的值。
只需将其放入头文件:
1 2 3 4 5 | typedef enum { MYCustomTypeOne, MYCustomTypeTwo, MyCustomTypeEtcetera } MYCustomType; |
。
使用正确的枚举over defines允许您这样定义一个方法:
1 | +(BOOL)isCustomTypeCorrectOnServer:(MYCustomType)type; |
然后,参数可以通过xcode自动完成。例如,如果您使用开关案例中的值,编译器可以做出更好的假设。
1 2 | #define kMyCustomName 1 #define kMyOtherCustomName 2 |
在它们将被使用的范围内,正如Felipe Sabino所说,为了使它们真正全球化,它们应该在前缀头中。
将内容添加到项目的前缀头文件中,通常命名为prefix.pch
或者,更干净的解决方案是创建一个contants文件,比如contants.h,并将该文件包含在前缀头文件中。
前缀.pch
1 | #include Contants.h |
容器.h
1 2 | #define kMyCustomName 1 #define kMyOtherCustomName 2 |
号