Как вернуть строку из «for loop»? Objective-C iOS

#ios #objective-c #iphone #nsstring #nsmutablestring

#iOS #objective-c #iPhone #nsstring #nsmutablestring

Вопрос:

Я новичок в программировании на языке Objective-C.

Мне нужно вернуть это «tabName» из for loop функции. Как сравнить, app_additional_tab_name_ равно tabName? Потому что теперь все еще возвращается фамилия для любого app_additional_tab_name_ .

   (NSString *)additionalTabName {
    for (int i = 0; i <= 16; i  ) {
    tabNameConcatString = [NSMutableString stringWithFormat:@"app_additional_tab_name_%d", i];
    tabName = [LocalizedStringsUserDefaults valueForKey:tabNameConcatString];
        if ([LocalizedStringsUserDefaults existsObjectForKey:tabNameConcatString])  {
            tabName = [LocalizedStringsUserDefaults valueForKey:tabNameConcatString];
            NSLog(@"This tabName is: @% @% @% @%", tabName, @" and will append to: ", tabNameConcatString);
        }
    }
    return tabName;
}
  

Всего наилучшего.

Ответ №1:

Переместить возврат внутри условия соответствия

   (NSString *)additionalTabName {
    for (int i = 0; i <= 16; i  ) {
    tabNameConcatString = [NSMutableString stringWithFormat:@"app_additional_tab_name_%d", i];
    tabName = [LocalizedStringsUserDefaults valueForKey:tabNameConcatString];
        if ([LocalizedStringsUserDefaults existsObjectForKey:tabNameConcatString])  {
            tabName = [LocalizedStringsUserDefaults valueForKey:tabNameConcatString];
            NSLog(@"This tabName is: @% @% @% @%", tabName, @" and will append to: ", tabNameConcatString);
            return tabName;
        }
    }
    return nil;
}
  

если совпадений не найдено, вы можете либо вернуть nil, либо вернуть пустую строку.