我似乎很难理解如何在Objective-C中使用Class静态consts。
我来自PHP背景,我真正尝试做的就是相当于:
MyObject.php
<?
class MyObject {
const A_VALUE = 1;
const ANOTHER_VALUE = 2;
}
?>
可以像
一样使用MyObject::A_VALUE
和类里面一样
self::A_VALUE
我想在Obj-C中复制这种行为,但我理解这是一种FAR不同的语法。
在Objective-C
中我认为它看起来与此类似
MyObject.h
static int A_VALUE = 1;
static int ANOTHER_VALUE = 2;
@interface MyObject : NSObject;
这种技术可行,但它会引发大量关于未使用变量的警告
无论其
MyObject.h
static NSString *A_VALUE = @"1";
static NSString *ANOTHER_VALUE = @"2";
@interface MyObject : NSObject;
这没有错误。尽管没有在任何地方使用。
好吧,我不想使用大量的字符串,这不仅感觉效率不高(特别是当很多时),但我讨厌查看我的代码并看到一堆
if( [value isEqualToString:A_VALUE] ) {
只需。毛。可能会更糟,但是eww。我更喜欢:
if( value == A_VALUE ) {
然而,我现在的工作原理,但我有点亏。
Objective C中制作consts的正确方法是什么(特别是int)
为每个人欢呼!
答案 0 :(得分:1)
你应该用这种方式定义你的整数常量:
static const NSInteger kYourConstString = 4;
和你的字符串:
static NSString *const kYourConstString = @"An example";
你的.m文件中的。 static
关键字将使变量范围成为编译单元的本地:.m文件。
答案 1 :(得分:0)
或者使用enum
代表int
和#define
代表字符串。