NSURL не любит получать переменные - PullRequest
0 голосов
/ 18 января 2011

Я получаю сообщение об ошибке, когда передаю строку в NSURL.

Entity: line 6: parser error : EntityRef: expecting ';'
zzzzzzz.com/feeds/rss/zzzz/zzzz/get_feed.php?c=zzzz&s=zzzz&f

Это не останавливает приложение или что-то еще, но я чувствую, что к нему нужно обратитьсяПохоже, ему не нравится символ &.Я попытался заменить на &, но это не сработало.

NSString *blogAddress = @"http://zzzzzz.com/feeds/rss/zzzz/zzzz/get_feed.php?c=zzzz&s=zzzz&f=most_recent";
NSURL *url = [NSURL URLWithString: blogAddress];
CXMLDocument *rssParser = [[[CXMLDocument alloc] initWithContentsOfURL:url options:0 error:nil] autorelease];

Ответы [ 2 ]

2 голосов
/ 18 января 2011

Попробуйте кодировать строку URL следующим образом ...

NSURL *url = [NSURL URLWithString:[blogAddress stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
1 голос
/ 18 января 2011

Вам нужно URLEкодировать вашу строку.Для этого я использовал категорию:

URLUtils.h:

@interface NSString (URLUtils)

- (NSString *) urlEncodeValue;

@end

URLUtils.m:

#import "URLUtils.h"


@implementation NSString (URLUtils)

- (NSString *) urlEncodeValue {
    return (NSString *) CFURLCreateStringByAddingPercentEscapes(NULL,
                                                               (CFStringRef) self,
                                                               NULL,
                                                               (CFStringRef)@"!*'();:@&=+$,/?%#[]",
                                                               kCFStringEncodingUTF8 );
}

@end

Затем, после включения URLUtils.h в ваш класс,Вы можете сделать это:

NSURL *url = [NSURL URLWithString: [blogAddress urlEncodeValue]];

Это должно сделать это.

Удачи!

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