2014-08-30 2 views
-1

Есть ли эквивалент python pass в объективе-C?Objective-C 'pass'

if item == '4': 
    pass 
else: 
    run_function() 

В Objective-C:

if (item == '4') { 
    **pass**; 
} else { 
    run_function(); 
} 

Что бы pass быть здесь?

+0

может быть, пустой оператор блока? Или ';'? Или просто напишите 'if (item! = 4) {run_function(); } 'и вообще опустить предложение' else'? –

+1

Существует не универсальный эквивалент, потому что ObjC не выполняет _require_-инструкции в определенных местах, как это делает Python. '@interface Strudel: NSObject @ end', например, будет эквивалентно' class Strudel (object): pass' –

+0

hmmmm Strudel ... – vikingosegundo

ответ

2
if ([item isEqualToString:@"4"]) { 
    ; //<- valid statement 
} else { 
    [self method]; 
} 

Это было бы одинаково. Я не удивлюсь, если компилятор генерирует точно такой же двоичный код

if ([item isEqualToString:@"4"]) { 
} else { 
    [self method]; 
} 

и причины семантического то же самое будет

if (![item isEqualToString:@"4"]) { 
    [self method]; 
} 
+2

Для читателей комментарий '/ * Do nothing * /' или эквивалентный быть полезными, если вы действительно хотите «пройти». По этой причине третий вариант лучше всего подходит для конкретного примера. –

1

Если бы я тебя, я бы просто отрицать условие:

if (item != '4') { 
    run_function(); 
} 
Смежные вопросы