Obj-C中的适当条件

时间:2012-11-23 00:31:46

标签: php objective-c const

我似乎很难理解如何在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)

为每个人欢呼!

2 个答案:

答案 0 :(得分:1)

你应该用这种方式定义你的整数常量:

static const NSInteger kYourConstString = 4;

和你的字符串:

static NSString *const kYourConstString = @"An example";
你的.m文件中的

static关键字将使变量范围成为编译单元的本地:.m文件。

答案 1 :(得分:0)

或者使用enum代表int#define代表字符串。