2012-11-23 35 views
0

我似乎很難理解如何在Objective-C中使用Class static consts。Obj-C中的適當套件

我來形成一個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) { 

但是我有什麼作品的權利,但我一直在一個小的損失的。

什麼是目標C正確的方法,使consts(特別INT)

大家乾杯!在.m文件

static NSString *const kYourConstString = @"An example"; 

回答

1

你應該定義整型常量是這樣的:

static const NSInteger kYourConstString = 4; 

,併爲您的字符串。 static關鍵字將使變量作用域位於編譯單元本地:.m文件。

+0

是的,爲我工作! :) – RedactedProfile

0

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