Я читал книгу C ++ для всех и в одном из упражнений говорилось о написании функции string reverse (string str)
, где возвращаемое значение - обратное of str
.
Может ли кто-нибудь написать базовый код и объяснить его мне? Я' Я смотрю на этот вопрос со вчерашнего дня и не могу его понять. Самое большое, что я получил, это то, что функция возвращает первую букву str
(что я до сих пор не знаю, как это произошло)
Это все, что я получил (через час после публикации этого вопрос):
string reverse(string str)
{
string word = "";
if (str.length() <= 1)
{
return str;
}
else
{
string str_copy = str;
int n = str_copy.length() - 1;
string last_letter = str_copy.substr(n, 1);
str_copy = str_copy.substr(0, n);
word += reverse(str_copy);
return str_copy;
}
return word;
}
Если я ввожу "Волк", возвращается Wol. Кто-нибудь, помогите мне здесь
Если я верну слово
вместо , верну str_copy
, тогда я получу w
Это то, о чем уже задавали вопросы несколько человек. ( [UIScreen mainScreen]
не сокращает его по причинам, уже неоднократно упоминавшимся ранее на этом форуме). Следовательно, логическим подходом было бы, чтобы контроллер представления содержимого читал фрейм окна делегата приложения. Единственный ответ, который я нашел, который приближается к этому, - использовать [[[UIApplication sharedApplication] окно] кадр]
- однако это работает только после того, как свойство окна было сделано keyAndVisible. Контроллер представления содержимого должен прочитать свойство окна делегата приложения , прежде чем он получит makeKeyAndVisible. Код идет в следующем порядке ....
Делегат приложения:
- (BOOL) application: (UIApplication *) application didFinishLaunchingWithOptions: (NSDictionary *) launchOptions {
// This next line is a test window frame for R&D purposes....
[self setWindow: [[UIWindow alloc] initWithFrame: CGRectMake(0.0f, 20.0f, 320.0f, 320.0f)]];
if ([self window]) {
contentViewController = [[ContentViewControl alloc] initWithNibName: nil bundle: nil]; // Content view controller instantiated here
if (contentViewController) {
[[self window] addSubview: [contentViewController view]];
[[self window] layoutSubviews];
[[self window] makeKeyAndVisible]; // Window made key and visible here
return YES;
}
}
return NO;
}
В моем контроллере представления содержимого initWithNibName: nil bundle: nil метод у меня есть следующий тестовый код ...
Итак, мой вопрос таков; Как называется экземпляр моего класса делегата приложения? Я знаю, что имя класса делегата приложения по умолчанию имеет значение myApplicationNameAppDelegate
, но я ищу имя экземпляра . Я хочу заменить вызов [[UIApplication sharedApplication] keyWindow]
на что-то вроде:
[myAppDelegatesInstanceName window].
Немного расширив это, как один метод доступа к другим целевым объектам, которые не являются потомками области видимости объекта, выполняющего запрос?
Как я уже сказал, я полный новичок во всем этом, и это, вероятно, еще один тупой вопрос для новичков, но на него, кажется, еще никто не ответил простым способом.
(С процедурной точки зрения - моя домашняя сфера - существует множество способов перенести содержимое окна на другие уровни области видимости, начиная от создания глобального доступа к окну для всего программного пакета и заканчивая передачей его в качестве конкретного параметра через различные иерархии функций - но этот объективный материал, кажется, отклоняется от установленной процедурной практики).
Если кто-нибудь может помочь, я был бы очень благодарен. Это определенно не интуитивно понятно! VV