Проблема вызова метода телефонного номера из строковой переменной делегата приложения - PullRequest
0 голосов
/ 15 октября 2011

Я пытаюсь передать строковую переменную из делегата приложения в метод для вызова этого номера в качестве номера телефона.Я объявил строку в делегате приложения, а затем установил строку в другом контроллере представления.

Это в 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».Опять же, не совсем уверен, на что это ссылается.

Теперь, я знаю, я знаю, что синглтоны - это то, что я должен использовать, но я все еще не обернулся вокруг них.Я читаю их и полагаю, что сейчас это простой способ, пока я тестирую приложение и изучаю одиночный код.Надеюсь, есть быстрое решение!Спасибо за помощь.

1 Ответ

2 голосов
/ 15 октября 2011

[NSURL URLWithString] принимает только полную строку NSString, а не формат + аргументы.

Итак, что вы действительно хотите:

-(IBAction)callPhone:(id)sender {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat: @"tel:%@", phoneLabel.text]]];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...