ios - 如何在iphone中单击按钮时调用url

标签 ios objective-c nsurl

当用户使用此方法单击按钮时,我传递了一个 URL,但是我的应用程序崩溃了,我不知道我做错了什么。

我已经在另一个 Controller 中编写了这段代码(处理连接的代码),该 Controller 是从第一个 View 中的按钮事件调用的。

特别是,这行代码:

NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:url]cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];

产生以下错误:

/Users/pradeepyadav/Desktop/RegexKitLiteDemo/Classes/SearchView.m:19:0 /Users/pradeepyadav/Desktop/RegexKitLiteDemo/Classes/SearchView.m:19: warning: incompatible Objective-C types 'struct NSURL *', expected 'struct NSString *' when passing argument 1 of 'URLWithString:' from distinct Objective-C type



这是完整的代码:
- (void)LoadAirport

{    
    NSString *urlString = [NSString stringWithFormat:@"http://www.bookryanair.com/SkySales/FRSearch.aspx?AvailabilitySearchInputFRSearchView%24ButtonSubmit=Search%20For%20Flights%20&AvailabilitySearchInputFRSearchView%24DropDownListMarketDay1=<%i>&AvailabilitySearchInputFRSearchView%24DropDownListMarketDay2=<%i>&AvailabilitySearchInputFRSearchView%24DropDownListMarketDestination1=<%@>&AvailabilitySearchInputFRSearchView%24DropDownListMarketMonth1=<%i>&AvailabilitySearchInputFRSearchView%24DropDownListMarketMonth2=<%i>&AvailabilitySearchInputFRSearchView%24DropDownListMarketOrigin1=<%@>&AvailabilitySearchInputFRSearchView%24DropDownListPassengerType_ADT=1&AvailabilitySearchInputFRSearchView%24DropDownListPassengerType_CHD=0&AvailabilitySearchInputFRSearchView%24DropDownListPassengerType_INFANT=0&AvailabilitySearchInputFRSearchView%24RadioButtonFlowSelector=FlightAndCar&AvailabilitySearchInputFRSearchView%24RadioButtonMarketStructure=RoundTrip&AvailabilitySearchInputFRSearchView%24discountPax=0&__EVENTARGUMENT=&__EVENTTARGET=&__VIEWSTATE=%2FwEPDwUBMGRkg4UKvNNb1NbM14%2F2n9zUxhNQ%2B%2BA%3D&errorlist=",day,day1,DestinCode,fromDate1,fromDate2,OriginCode];
    NSURL *url = [NSURL URLWithString:urlString];
    NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:url]cachePolicy:NSURLRequestUseProtocolCachePolicy
                                          timeoutInterval:60.0];
    NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
    if (theConnection) {
        webData = [[NSMutableData data] retain];
        NSLog(@"%@",webData);
    } else {

    }
}

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 
{
    //responseData = [[NSMutableData alloc] init];
    [webData setLength: 0]; 
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 
{
    //[responseData appendData:data];
    [webData appendData:data]; 
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error 
{
    [connection release];
    [webData release]; 
    NSLog(@"Connection failed! Error - %@ %@",
          [error localizedDescription],
          [[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]);
    //[textView setString:@"Unable to fetch data"];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{
    loginStatus = [[NSString alloc] initWithBytes: [webData mutableBytes] length:[webData length] encoding:NSUTF8StringEncoding]; 
    [connection release];
}

最佳答案

我确信由于注意力不集中而发生错误;-) 您正在传递一个 NSURL 实例作为您应该传递 NSString 的参数。

在线上,

NSURLRequest *theRequest = [NSURLRequest requestWithURL:...

任一套,
requestWithURL:url

或者,
requestWithURL:[NSURL URLWithString:urlString];

关于ios - 如何在iphone中单击按钮时调用url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7495160/

相关文章:

ios - 使用 Alamofire 发布数据时出现 SerializationFailure 错误

iphone - Objective-C 中的排列/字谜——我遗漏了一些东西

ios - 在派生数据中找不到 .app 文件

ios - 不断收到 "Unbalanced calls to begin/end appearance transitions for <ViewController>"错误

iphone - 如何使用执行选择器选择随机方法?

ios - 第一次打开应用程序会一直转到教程屏幕

objective-c - 检测 NSURL 是否是 UIImage 类支持的文件格式的 URL

ios - swift 2 : Can't find audio file path when I use variables as file names

cocoa - 在 NSTextView 中创建应用内链接

ios - 在 Swift 中添加图像过渡动画