2014-01-26 52 views
-4

我是Objective-C的新手。我想使用全局參數,如在C/C++Objective-C如何定義靜態參數

#define PARAM_1 1 

我怎麼能做到這一點在Objective-C

+2

是的,你可以。它完全有效。 – Tirth

+0

你會使用'#define PARAM_1 1'。 Objective-C *是* C. –

+1

爲了更一般化,您可以使用'#define',您可以使用'enum',您可以使用初始化的'static'變量。你可以在常規C中做的所有事情。(每種方法都有其優點和缺點 - 沒有「完美」解決方案。) –

回答

2

以同樣的方式。

Objective-C是C的超集,所以你的定義是完全有效的。

編輯下面評論

比定義,它只是執行文本替換,你可以使用,而不是一個靜態變量,而是:

static NSNumber const * retrieveFriendRequestNumber = nil; 

,你可以在類的初始化器方法初始化

+ (void)initialize { 
    retrieveFriendRequestNumber = @(2); 
} 

(是的,有點冗長,但是如何初始化文字的一個例子)。

,然後你可以使用它作爲:

[parameters setObject:retrieveFriendRequestNumber forKey:@"fcode"]; 

另外,聲明爲靜態NSUInteger並將其轉換爲一個對象,當你使用它:

static NSUInteger retrieveFriendRequest = 2; 

而且使用它作爲:

[parameters setObject:@(retrieveFriendRequest) forKey:@"fcode"]; 
+0

[參數setObject:RETRIEVE_FRIEND_REQUESTS forKey:@「fcode」]; – zontragon

+0

它給出了一個錯誤:指針轉換不兼容的整數 – zontragon

+0

@zontragon這行代碼是什麼?我想,RETRIEVE_FRIEND_REQUESTS不是一個對象。 – Larme