2012-03-06 7 views
0

RSSフィードを解析し、各アイテムを辞書に格納し、それぞれを配列に格納しています。これはうまくいきますが、フィードからリンクを開こうとすると何も起こりません。URLを入力するとURLが正しいように見えますが、URLから空白、改行、タブを削除してもわかりません天気私はこれを正しく行った。何か案は?RSSフィードリンクが開かない

私はプログラムの他の部分で他の要素を使用しているので、最初の解析と記憶は分かりますので、問題に直接関係するコードを表示します。 URL

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

やリンクを開くためのアクションをフォーマット

、私は、@のように、今のリンクをハードコーディングするときにアクションが動作することを「http://www.google.com」を言及します。あなたは間違った方法でURLをコードしている

-(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

+0

カテゴリをインポートしましたか? – fbernardo

+0

私は自分の答えを編集しました。 – fbernardo

0

リンクは、ablにする接頭辞としてhttp://を持つ必要がありますeを開く。取得しているURLには、httpプレフィックスが付いていない可能性があります。 google.comはhttp://プレフィックスを持っていたため働いていました。

+0

彼はまだ間違った方法でURLをエンコードしています。スペースを削除するだけではなく、エンコードします。 – fbernardo

+0

リンクはhttp://プレフィックスを含む完全なURLであり、ハードコードされたときに動作します。URLをエンコードする標準的な方法があるかどうか尋ねることはできますか? – sjhtaylor

関連する問題