2013-06-07 8 views
0

Я генерирую URL-адрес, заданный параметрами строки, но url дает значение null. Для создания URL-адреса я внедрил следующий код.Значение объекта NSURL равно null

NSURL *url = [[NSURL alloc] init]; 
NSString *strURL = @"ftp://Administrat:ABC(R%[email protected]@xx.xx.xx.xx/arrows.png"; 
url = [NSURL URLWithString:[NSString stringWithString:strURL]]; 
NSLog(@"URL :: %@",url); 

Благодаря

ответ

2

Вам нужно избегать специальных символов в строке запроса url.

Использование:

NSString *strURL = @"ftp://www.jerox.com/Administrator:@[email protected]@%$/arrows.png"; 
strURL =[strURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
NSURL *url = [NSURL URLWithString:strURL]; 
NSLog(@"URL :: %@",url); 

Кроме того, я должен упомянуть некоторые ошибки в коде:

  • Нет необходимости выделять и инициализировать объект NSURL, потому что вы снова назначить другой объект к этому указателю
  • Нет необходимости в использовании stringWithString: там
+0

HI Midhun, см. Мой обновленный вопрос. Я столкнулся с проблемой в этой строке URL. Спасибо. –

+0

@JekilPatel: В чем проблема? Я получаю НСУРЛ должным образом. –

+0

Спасибо Midhun за ваш ответ. Проблема в том, что я получил предупреждение в этой строке - «NSString * strURL = @» ftp: // Administrat: ABC (R% - @ [email protected]/arrows.png ";" и предупреждение - "больше% конверсий, чем аргумент данных", и изображение не отображается. –

1

использование Make следующего кода.

NSString *sURL = @"ftp://www.jerox.com/Administrator:@[email protected]@%$/arrows.png"; 
NSURL *url = [[NSURL alloc] initWithString:[sURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
NSLog(@"URL :: %@",url); 
+0

Спасибо vinayak. Он работает, но проблема в том, что он добавляет «- file: // localhost /» в конец URL-адреса. Как я могу удалить его? –

0

Фро м Опубликованного пример кода, вот проблема:

NSString *strURL = @"ftp://Administrat:ABC(R%[email protected]@xx.xx.xx.xx/arrows.png"; 

Посмотрите внимательно на компоненте власти (имя пользователя, пароль и хост). Символ @ используется в URL-адресах для разделения имени пользователя & пароля с хоста. Поскольку ваш пароль содержит символ @, он должен быть пропущен процентом. Процент кодирование @ является %40, давая вам вместо кода:

NSString *strURL = @"ftp://Administrat:ABC(R%-%[email protected]/arrows.png"; 

Вы действительно должны быть избежать других URL конкретных символов там тоже, как одинокий % символа.

Смежные вопросы