2013-04-15 3 views
0

У меня есть переменная agencyWebsite и метка, которая должна открыть веб-сайт при нажатии с помощью этого метода:Открыть URL с переменным синтаксисом

- (void)website1LblTapped { 
    NSURL *url = [NSURL URLWithString:self.agencyWebsite]; 
    [[UIApplication sharedApplication] openURL:url]; 
} 

я получаю предупреждение в компиляторе говоря:

Incompatible pointer types sending UILabel* to parameter of type NSString* 

И приложение падает при нажатии ссылки. Какие-либо предложения?

Edit: Вот что я делаю, чтобы сделать этикетку интерактивной

UITapGestureRecognizer* website1LblGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(website1LblTapped)]; 
    // if labelView is not set userInteractionEnabled, you must do so 
    [self.agencyWebsite setUserInteractionEnabled:YES]; 
    [self.agencyWebsite addGestureRecognizer:website1LblGesture]; 

Что я использовал, чтобы получить его работу

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://%@", self.agencyWebsite.text]]; 

ответ

1

Если agencyWebsite имеет типа UILabel*, вам необходимо получить доступ к его text свойство вместо того, чтобы передать сам объект URLWithString:.

- (void)website1LblTapped { 

    NSURL *url = [NSURL URLWithString:self.agencyWebsite.text]; 
    [[UIApplication sharedApplication] openURL:url]; 
} 

Вызов self.agencyWebsite будет вернуть UILabel* объект, в то время как self.agencyWebsite.text возвратит NSString* объект, содержащий текст из метки.

+0

ОК, который имеет большой смысл, я внес изменения и не имеет больше ошибок или сбоев, но ничего не происходит, когда я нажимаю на метку :( – BluGeni

+1

Имеет ли он схему URI? Например, 'http: //' –

+0

Ну, теперь похоже на другой вопрос :) Извините, но вы должны дать более подробную информацию. Я считаю, что лучше всего открыть новый вопрос, поскольку, похоже, вы решили свою первоначальную проблему. – rdurand

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