2 daffodilgirl DaffodilGirl 于 2013.04.16 09:58 提问

使用变量语法打开URL地址

有一个变量agencyWebsite和一个标签,应该在点击下面方法的时候打开一个网站。

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

在编译器的警报:

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

再点击网站应用就会崩溃。不知道应该怎么解决?请高手指点一下,谢谢。

下面是设置label点击的代码:

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个回答

O_1001_O
O_1001_O   2013.04.16 14:10
已采纳

If 如何agencyWebsite是UILabel*类型,你需要访问它的text属性,不应该传递对象本身到 URLWithString:

- (void)website1LblTapped {

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

调用 self.agencyWebsite会返回您的UILabel* 对象。同时self.agencyWebsite.text会返回包含标签text的NSString*对象。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!