Блок объявленной переменной виден снаружи? - PullRequest
0 голосов
/ 01 апреля 2010

Если я объявляю переменную внутри блока (см. Ниже), есть ли способ указать, что она видна вне блока, если это необходимо?

if(turbine_RPM > 0) {
    int intResult = [sensorNumber:1];
    NSNumber *result = [NSNumber numberWithInt:intResult];
}
return result;

или это способ просто объявить вне области видимости блока?

NSNumber *result = nil;
if(turbine_RPM > 0) {
    int intResult = [sensorNumber:1];
    result = [NSNumber numberWithInt:intResult];
}
return result;

большое спасибо

1009 * Гэри *

Ответы [ 2 ]

4 голосов
/ 01 апреля 2010

Вам необходимо объявить переменную вне блока. Блоки кода определяют область действия.

0 голосов
/ 01 апреля 2010

Я люблю однострочник:

return (turbine_RPM > 0) ? [NSNumber numberWithInt:[sensorNumber:1]] : nil;

Как указал Jasarien, вы хотите объявить переменную вне блока. Или просто верните NSNumber немедленно.
Проблема с вашим вторым примером заключается в том, что вы вернете инициализированную переменную в случае сбоя оператора if, поэтому вам нужно будет вернуть что-то в операторе else.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...