2012-03-06 38 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