2012-04-02 38 views
0

在Ruby中,我們有用於散列密鑰的符號。我試圖將一個Ruby庫移植到Objective-C中,並且庫中有一個使用符號作爲鍵的散列。 Objective-C有沒有類似的結構?或者我應該使用NSString s?Objective-C等效的Ruby符號

+0

Objective-C是C的一個超集,所以你可以使用'#define'常量獲得類似的結果。 – Sahand 2012-04-02 17:25:16

+0

在所有符號上調用to_s,並且可以使用字符串作爲您的鍵(符號是可變字符串) – bjhaid 2012-04-02 17:36:20

+0

I; m在Objective-C中討論符號,而不是在Ruby中討論符號。 – Linuxios 2012-04-02 17:48:36

回答

0

NSDictionary Objective-C中的鍵通常是NSString s。這可能是去這裏的路。

您不必擔心Ruby字符串文字與符號;只需創建一個帶有該字符串值的NSString或根據需要使用字面值@"my key name"字符串。

+0

@benalpert的答案是更好的答案。在Ruby中使用符號是慣用的,因爲它們是不可變的,只能創建一次。在Objective-C中,一個指向字符串的const指針與你想要使用的相同。 – 2012-04-02 18:26:10

2

我見過的聲明像

extern NSString *const NSKeyValueChangeNewKey = @"NSKeyValueChangeNewKey"; 

,這樣你可以使用它作爲一個重點:

[dict objectForKey:NSKeyValueChangeNewKey]; 

對於更詳細一點的解釋,見Constants in Objective-C

+0

搜索'NSKeyValueChangeNewKey' – hrnt 2012-04-02 17:44:53

+0

謝謝,剛剛找到一個很好的答案解釋它。 – 2012-04-02 17:46:24

+0

備案:請不要在常量前加上「NS」 - 這是Apple的前綴。 – Chuck 2012-04-02 18:49:50