Я пытаюсь передать строковую переменную из делегата приложения в метод для вызова этого номера в качестве номера телефона.Я объявил строку в делегате приложения, а затем установил строку в другом контроллере представления.
Это в DetailViewController.m.Примечание: я поместил NSLogged в этот файл реализации, и он правильно записывает в журнал, поэтому значение переносится успешно, я полагаю, что с этим методом что-то не так.Возможно, мне неясно, какой синтаксис возможен для этого метода:
-(IBAction)callPhone:(id)sender {
TheAppDelegate *delegate = (TheAppDelegate *)[[UIApplication sharedApplication] delegate];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:%@", delegate.phoneNumber]];
}
Я получаю ошибку: «Слишком много аргументов для вызова метода, ожидается 1, есть 2».Я не уверен, что это ссылка.
Я также попробовал это:
Во-первых, установка значения phoneNumber для UILabel, например, так:
TheAppDelegate *delegate = (TheAppDelegate *)[[UIApplication sharedApplication] delegate];
phoneLabel.text = delegate.phoneNumber;
А затем попробуем это так:
-(IBAction)callPhone:(id)sender {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel:%@", phoneLabel.text]];
}
Это выдает мне ту же ошибку: «Слишком много аргументов для вызова метода, ожидаемый 1, имеет 2».Опять же, не совсем уверен, на что это ссылается.
Теперь, я знаю, я знаю, что синглтоны - это то, что я должен использовать, но я все еще не обернулся вокруг них.Я читаю их и полагаю, что сейчас это простой способ, пока я тестирую приложение и изучаю одиночный код.Надеюсь, есть быстрое решение!Спасибо за помощь.