Ссылка на ленту RSS не открывается - PullRequest
0 голосов
/ 06 марта 2012

Я разбираю ленту RSS и сохраняю каждый элемент в словаре и каждый из них в массиве.Это все работает нормально, но когда я пытаюсь открыть ссылку из ленты, ничего не происходит, URL-адрес кажется правильным, так как я NSLoged его при нажатии кнопки, я удалил пробел, новые строки и вкладки из URL, но я не уверенпогода я сделала это правильно.Любые идеи?

Я знаю, что первоначальный анализ и хранение в порядке, так как я использую другие элементы в других частях программы, поэтому я просто покажу код, непосредственно связанный с проблемой.

Форматирование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);

}

Ответы [ 2 ]

0 голосов
/ 06 марта 2012

Ссылки должны иметь префикс http: //, чтобы их можно было открыть.Получаемый вами URL может не иметь префикса http.google.com работал, потому что у него был префикс http: //.

0 голосов
/ 06 марта 2012

Вы неверно кодируете URL, попробуйте this .

EDIT (чтобы включить код по ссылке выше):

Создание категории с именем "NSString + URLEncoding", файлы 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];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...