2011-09-21 49 views
1

我傳遞一個URL,當用戶點擊一個按鈕與此方法,但我的應用程序崩潰,我不知道我做錯了什麼。如何調用url上的按鈕點擊iphone

我在第一個視圖中的按鈕事件中調用的另一個控制器中編寫了此代碼(處理連接的代碼)。

特別是,這行代碼:

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]; 

} 
+1

你在做什麼錯的是你在上面的代碼行的字符串對象分配NSURL,[的NSURLRequest requestWithURL:[NSURL URLWithString:URL],在這一行的網址是不是一個NSString預期參數的一個URL。 –

回答

3

我肯定發生了錯誤,由於到缺乏專心;-)你通過一個NSURL instanc e作爲你應該通過NSString的論據。

就行了,

NSURLRequest *theRequest = [NSURLRequest requestWithURL:... 

任一組,

requestWithURL:url 

,或者

requestWithURL:[NSURL URLWithString:urlString]; 
3

使用此代碼爲NSURLRequest

NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];