ios openURL基于表格单元格值

时间:2011-10-14 09:28:17

标签: ios uitableview nsstring

最亲爱的stackoverflow大脑,我再次遇到iOS问题......虽然我是新手。

我正在尝试使用url打开一个safari,其中包含一个基于表格单元格值的URL参数。因此,如果表格单元格包含“堆栈”,我想转到“http://stack.com?param=stack”。这应该是一项简单的任务,但我无法让它发挥作用。

在我到达UIApplication线之前它已经失败了......所以我甚至都不知道这是否会奏效。我收到了这个错误:

2011-10-14 10:18:32.297 NPT[1085:207] *** Terminating app due to uncaught exception
'NSInvalidArgumentException', reason: '*** initialization method -
initWithCharactersNoCopy:length:freeWhenDone: cannot be sent to an abstract object of
class NSCFString: Create a concrete instance!'

当我使用此代码时:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSString* thisValue = [[[self.searchResults cellForRowAtIndexPath:indexPath] textLabel] text];

    NSString* thisPlateURL = [
                          [NSString new] 
                          initWithFormat:@"http://www.site.co.uk?&regno=%@", thisValue
                          ];

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString: thisPlateURL]];

    [thisPlateURL release];
}

我猜这与我没有正确设置这个值有关,而且我确定如果有人发现它我会踢自己,但我只是看不出问题是什么。

请帮忙!

2 个答案:

答案 0 :(得分:2)

我认为问题出在NSString初始化中:

尝试:

NSString* thisPlateURL = [NSString stringWithFormat: @"http://www.site.co.uk?&regno=%@", thisValue];

答案 1 :(得分:0)

您正在以错误的方式初始化NSString - [NSString new],您应该使用[NSString alloc]而不是