Использование оператора If для получения одной строки для передачи в вызов API

#ios #api #if-statement

#iOS #API #if-statement

Вопрос:

Мне нужно передать string переменную в API вызов, но мне трудно получить string из if инструкции.

Ниже приведено то, что я пробовал до сих пор, но я получаю предупреждение о том, что « usersID является неиспользуемой переменной» внутри каждого из if операторов…

Что имеет смысл и является основной проблемой, которую я пытаюсь решить (т. Е. Выполнить через if оператор, чтобы получить его string для использования после оценки).

Спасибо за помощь, опубликую любой дополнительный код по мере необходимости!

ViewController.h

   @property (nonatomic, strong) NSString *usersID;

  // Get leaf and theme from Saved defaults
  NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
  NSString *leafAbbreviation = [defaults objectForKey:[NSString stringWithFormat:@"leafAbbreviation"]];
  NSString *themeID = [defaults objectForKey:[NSString stringWithFormat:@"themeId"]];

  // Get ID User number based on Leaf and Theme
  if ([leafAbbreviation isEqualToString: @"new"] amp;amp; [themeID isEqualToString: @"2"]) {
  NSString *usersID = [NSString stringWithFormat:@"728"];
  }
  else if ([leafAbbreviation isEqualToString: @"new"] amp;amp; [themeID isEqualToString: @"3"]) {
    NSString *usersID = [NSString stringWithFormat:@"275"];
  }
  else {
  NSString *usersID = [NSString stringWithFormat:@"486"];

  // API
    NSString *path = [NSString stringWithFormat:@"v1/%@/media/?client_id=xxx", usersID];
  

Ответ №1:

Вы должны объявить свою переменную перед статусами if, используйте ниже insetead:

 // Get ID User number based on Leaf and Theme
NSString *usersID = [NSString stringWithFormat:@""];
if ([leafAbbreviation isEqualToString: @"new"] amp;amp; [themeID isEqualToString: @"2"]) {
    usersID = [NSString stringWithFormat:@"728"];
}
else if ([leafAbbreviation isEqualToString: @"new"] amp;amp; [themeID isEqualToString: @"3"]) {
    usersID = [NSString stringWithFormat:@"275"];
}
else {
    usersID = [NSString stringWithFormat:@"486"];
}
  

Это устранит вашу проблему.

Комментарии:

1. Получил это и просто оставил его пустым внутри @"" for NSString *usersID = [NSString stringWithFormat:@""]; ?

2. [NSString stringWithFormat:@""] бессмысленно, поскольку формат ничего не содержит (аналогично, если строка формата не содержит параметров формата и содержит только обычный текст). Просто используйте @"" напрямую, или nil если пустая строка не имеет смысла.

3. @Wain, спасибо за информацию! Итак, просто используйте NSString *usersID = @ » «, а затем, как только будут выполнены операторы if, они будут заполнять переменную usersID?