Objective-C: переменная не будет использоваться (если) - PullRequest
0 голосов
/ 12 ноября 2018

Я использую довольно простое условие if, которое просто проверяет имя и возвращает переменную, но оно не распознается. переменная createUser помечается как неиспользуемая.

NSString *salesPersonName = [[[SevdeskApiManager sharedManager] currentSevUser] firstName];
    if ([salesPersonName isEqual: @"XXX "]) {
        NSString *createUser = @"1";
    } else if ([salesPersonName isEqual: @"XXXX"]) {
        NSString *createUser = @"11";
    } else if ([salesPersonName isEqual: @"XXXXX"]) {
        NSString *createUser = @"111";
    } else {
        NSString *createUser = @"1111";
    }
    // Hier die keyvalues eintragen
    NSString *bodyString = [NSString stringWithFormat:@"name=nachtelefonieren&assigned[id]%@=&assigned[objectName]=SevUser&category[id]=31&category[objectName]=Category& createUser[id]=%@&createUser[objectName]=SevUser&noticeCreator=0&deadline=%@&status=100&object[id]=28243&object[objectName]=SevClient",assignedUser,createUser,deadline];

Ответы [ 3 ]

0 голосов
/ 12 ноября 2018

Просто объявите переменную createUser экземпляра вне области действия блока if (т.е. аналогично объявлению salesPersonName). Это должно уменьшить избыточность в вашем коде и решить проблему.

0 голосов
/ 14 ноября 2018

Объявите переменную экземпляра вне блока if и инициируйте ее с пустым значением, потому что это может привести к сбою программы в строке переменной bodyString.

NSString *createUser = @"";
if ([salesPersonName isEqual: @"XXX "]) {
    createUser = @"1";
} else if ([salesPersonName isEqual: @"XXXX"]) {
    createUser = @"11";
} else if ([salesPersonName isEqual: @"XXXXX"]) {
    createUser = @"111";
} else {
    createUser = @"1111";
}

// Hier die keyvalues eintragen
NSString *bodyString = [NSString stringWithFormat:@"name=nachtelefonieren&assigned[id]%@=&assigned[objectName]=SevUser&category[id]=31&category[objectName]=Category& createUser[id]=%@&createUser[objectName]=SevUser&noticeCreator=0&deadline=%@&status=100&object[id]=28243&object[objectName]=SevClient",assignedUser,createUser,deadline];
0 голосов
/ 12 ноября 2018

Просто переместите объявление переменной за пределы области действия каждого if (сейчас переменная создается и немедленно удаляется)

NSString *createUser;

if ([salesPersonName isEqual: @"XXX "]) {
    createUser = @"1";
} else if ([salesPersonName isEqual: @"XXXX"]) {
    createUser = @"11";
} else if ([salesPersonName isEqual: @"XXXXX"]) {
    createUser = @"111";
} else {
    createUser = @"1111";
}

Кроме того, вместо оператора multi-if вы можете использовать словарь:

NSDictionary *dict = @{
    @"XXX " : @"1",
    @"XXXX" : @"11",
    @"XXXXX" : @"111"
};

NSString *createUser = dict[salesPersonName] ?: @"1111";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...