2013-11-26 83 views
-2

我想改變現有的NSString的值。但它不斷給我一個'預期表達'的錯誤。


我知道這是可能的,但我不確定如何去做。也許這只是我作爲一個小白......編輯NSString的

這裏是我的代碼:

NSString *object = @""; 

int randObj = rand() % 2; 
switch (randObj) { 
    case 0: 
     NSString *object = @"object 1";//error here 
     break; 

    case 1: 
     NSString *object = @"object 2";//and here 
     break; 

     default: 
     break; 

代碼被改變object變量的值,但它只是拋出一個錯誤。

+0

這將實現m作爲一個字符串數組更容易,並獲得基於隨機索引的值。 – rmaddy

+1

沒有人住過兩次。 Objective-C變量也沒有。 –

+0

是的,但是一個數組對於我所要完成的工作並不實際,另外我也沒有線索來說明如何使用它們...... – DeveloperACE

回答

3

一旦你聲明瞭你的字符串,就使用它。不要再次聲明(做NSString *object = ...;

如:

NSString *object = @""; 

int randObj = rand() % 1; 
switch (randObj) { 
    case 0: 
     object = @"object 1"; 
     break; 

    case 1: 
     object = @"object 2"; 
     break; 

     default: 
     break; 

我會建議對Objective-C的基礎閱讀了,具體怎麼用變量

1

你不能聲明如果你希望更新外部聲明的NSString *對象,只要做

switch (randObj) { 
case 0: 
    object = @"object 1"; 
    break; 

case 1: 
    object = @"object 2"; 
    break; 

    default: 
    break; 
+1

是的,你可以在交換機內的一個case標籤內聲明變量。如果第一行碰巧聲明瞭一個變量,則需要將代碼放在一個塊(花括號)中。當然,在這種情況下,OP不應該使用新的變量。 – rmaddy

+0

@Computer_whiz你爲什麼接受這個答案而不是另一個?另一個是第一個,這是錯誤的(代碼是正確的,但代碼錯誤之前的聲明)。 – rmaddy

+0

哦,對不起,我是新來這個網站,我認爲你可以接受多個答案。 – DeveloperACE