2013-11-26 2 views
-2

Я пытаюсь изменить значение существующей NSString. Однако он продолжает давать мне ошибку «Ожидаемое выражение».


Я знаю, что это возможно, но я точно не знаю, как это сделать. может быть, это только мне быть нуб ...Редактирование NSString's

Вот мой код:

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 uch проще в виде массива строк и получения значения на основе случайного индекса. – 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

Да, вы можете объявлять переменные внутри метки случая внутри коммутатора. Если в первой строке объявляется переменная, вам нужно поместить код в блок (фигурные скобки). Разумеется, в этом случае OP не должен использовать новые переменные, как вы заявляете. – rmaddy

+0

@Computer_whiz Почему вы приняли этот ответ по другому? Другой был первым, и этот неверный (код правильный, но утверждение перед кодом неверно). – rmaddy

+0

О, извините, я новичок на этом сайте, и я думал, что вы можете принять несколько ответов. – DeveloperACE

Смежные вопросы