2012-03-06 32 views
0

我正在解析一個RSS提要,並將每個項目存儲在一個字典中,並將其中的每一個存儲在一個數組中。這一切工作正常,但當我嘗試打開鏈接從飼料什麼都沒有發生,網址似乎是正確的,因爲我有NSLog的時候按下按鈕,我已經刪除空白,換行符和製表符,但我不確定天氣我已經做到了這一點。有任何想法嗎?RSS提要鏈接不開放

我知道最初的解析和存儲是好的,因爲我在程序的其他部分使用其他元素,所以我將只顯示與問題直接相關的代碼。

格式化URL

libraryRSSString = [[stories objectAtIndex: 0] objectForKey: @"link"]; 
[libraryRSSString stringByReplacingOccurrencesOfString:@" " withString:@""]; 
[libraryRSSString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 

,並打開該鏈接的動作,我現在提的是,動作硬編碼的鏈接時,如工作@「http://www.google.com」;

-(IBAction)LibraryRSSAction{ 

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

     NSLog(@"button pressed"); 

     NSLog(@"the link is %@",libraryRSSString); 

} 

回答

0

您編碼錯誤的方式鏈接,儘量this

EDIT(要包含上面的鏈接的代碼):

創建一個名爲 「的NSString + URL編碼」 類別,文件的NSString + URLEncoding.h和的NSString + URLEncoding.m。

的NSString + URLEncoding.h:

#import <Foundation/Foundation.h> 
@interface NSString (URLEncoding) 
-(NSString *)urlEncodeUsingEncoding:(NSStringEncoding)encoding; 
@end 

的NSString + URLEncoding.m:

#import "NSString+URLEncoding.h" 
@implementation NSString (URLEncoding) 
-(NSString *)urlEncodeUsingEncoding:(NSStringEncoding)encoding { 
    return (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, 
       (CFStringRef)self, 
       NULL, 
       (CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ", 
       CFStringConvertNSStringEncodingToEncoding(encoding)); 
} 
@end 

現在導入您要使用的文件的文件的NSString + URLEncoding.h該方法只是做libraryRSSString = [[[stories objectAtIndex: 0] objectForKey: @"link"] urlEncodeUsingEncoding:NSUTF8StringEncoding];

+0

謝謝,看起來很有希望,儘管當我調用方法時,我得到一個警告,說'NSString可能不會響應urlEncodeUsingEncoding',試圖編譯它,並且按下按鈕時導致SIGBART – sjhtaylor 2012-03-06 13:47:41

+0

您是否導入了類別? – fbernardo 2012-03-06 14:07:04

+0

我編輯了我的答案。 – fbernardo 2012-03-06 14:13:32

0

鏈接應該有http://作爲前綴是abl e被打開。您收到的URL可能沒有http前綴。 google.com工作,因爲它有http://前綴。

+0

Vut他仍然以錯誤的方式對URL進行編碼,您不只是刪除空格,而是編碼它們。 – fbernardo 2012-03-06 12:48:42

+0

鏈接是一個包含http://前綴的完整URL,並且在硬編碼時可以工作,我可以詢問是否有標準方法來編碼URL? – sjhtaylor 2012-03-06 13:49:14