2011-12-28 2 views
0

Я пытаюсь сделать ссылку телефонный звонок из номера телефона наступающем из JSON, Его бросали неперехваченное исключение на этой линии:Append Переменная для NSURL

lblPhone.text = [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"tel://" URLByAppendingPathComponent:phone]]; 

Что я делаю неправильно?

ответ

1

Вы пытаетесь создать строку ярлыка из действия, которое не возвращает строку. Текст строки не может быть задан из результата действия попытки сделать телефонный звонок.

Чтобы создать ярлык, просто используйте номер телефона.

lblPhone.text = phone 

Чтобы сделать вызов, вам необходимо подключить действие, которое использует метку:

NSString *phoneNrUrl = [@"tel://" stringByAppendingString:lblPhone.text]; 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNrUrl]]; 

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

0

Вы вызываете функцию +[NSURL URLWithString:URLByAppendingPathComponent:], которой не существует. Вы хотите сначала создать URL-адрес из строки, а затем добавить компонент пути.

Что-то больше, как это:

[[UIApplication sharedApplication] openURL:[[NSURL URLWithString:@"tel://"] URLByAppendingPathComponent:phone]]; 
+0

Спасибо, все еще не работал, такая же ошибка, как и на другой ответ. – savagenoob

+0

Вы знаете, что не публиковали эту ошибку, не так ли? –

+0

Вы пытаетесь установить ярлык из метода, который вызывает телефонный звонок. – Abizern

0

Это может быть, что openURL: возвращает BOOL и lblPhone.text кажется больше в NSString.

Если это не причина, как добавить сообщение об исключении на ваш вопрос?

+0

*** Завершение приложения из-за неперехваченного исключения «NSInvalidArgumentException», причина: «*** + [NSURL URLWithString: stringByAppendingString:]: нераспознанный селектор, отправленный в класс 0x41de40 ' – savagenoob

+0

Эта ошибка возникает, когда вы используете функцию, которая не выполняет существовать. Посмотрите на мой ответ - вы объединяете две функции. –

+1

Том прав. Я не прокрутил ваш код. Исправьте это, и вы получите второе исключение. Тогда прочитайте мой ответ. – djromero

 Смежные вопросы

  • Нет связанных вопросов^_^