2012-08-06 52 views
1

我有一個「int i = 0;」,還有,「int b;」 我希望將變量「b」設置爲任何值,「i」用於應用程序的durainder。 因此,在開始時,「b」將設置爲「我」,所以「b」將爲0. 但是,如果「我」在應用程序中突然變化,我想「b」自動設置爲「我「是。在Objective C中,是否有可能將變量「連接」到另一個變量?

注意:我以整數爲例,其實我問這些問題的NSStrings 如果你不明白這個問題,請評論!

+4

你爲什麼不用「i」? – Novarg 2012-08-06 11:49:12

+1

爲什麼不只是用我的一切,從來沒有變量b? – wattson12 2012-08-06 11:52:51

回答

4

int s是一個C整數類型 - 它們不是特定於Objective-C的任何東西。所以你可以通過讓b指向i來達到你想要的。例如。

int i = 0; 
int *b; 
b = &i; 

NSLog(@"value is currently %d", *b); 

i = 2; 

NSLog(@"value is now %d", *b); 

用C,這意味着什麼是i爲整數,b爲一個整數的地址的容器。 &i評估爲i的地址,因此b = &i;表示'將i的地址放入b'中。 *b表示'b'中包含的地址處的值的值(與僅存儲在b中的地址b對比)。

i不再存在時,訪問*b將會失效。

+0

NSStrings怎麼樣?其實我只是用整數作爲例子。 – maor10 2012-08-06 14:10:45

+0

對於NSStrings而言,除''''有'NSString *'類型''和''''''NSString **''類型外,它是一樣的。 – JeremyP 2012-08-06 15:16:19

0

你想要的行爲與全局變量分配類似。在那種情況下,只要你改變了我的價值,你也改變了B的價值。但是也許你可以用通知(事件)解決你的問題,但是我不確定。

+0

事實上,如果你不想使用全局變量,Tommy的答案是最好的方法。 – j0N45 2012-08-06 11:52:16

相關問題