рдПрдирдПрд╕рдпреВрдЖрд░рдПрд▓ / рдПрдирдПрд╕рдпреВрдЖрд░рдПрд▓рд╕реАрдУрдордкрд░реНрд╕рди рдХреЛ рд╕рдордЭрдирд╛

рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ: рд╣рд╛рд▓ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рдорджреНрджреЗрдирдЬрд░, рдпрд╣ рдЙрджреНрджреЗрд╢реНрдпрдкреВрд░реНрдг-рд╕реА рдкрд░ рдПрдХ рдбреЗрд╡рд▓рдкрд░ рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рдлреИрд╢рдиреЗрдмрд▓ рдирд╣реАрдВ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдХреБрдЫ рдЗрд╕реЗ рд╕реНрдХреНрд░реИрдк рдХреЗ рд▓рд┐рдП рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХрд░рдирд╛ рдмрд╣реБрдд рдЬрд▓реНрджреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЦреБрдж рдХреЛ рдЕрдиреБрд╡рд╛рдж рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реВрдВред рдореВрд▓ рдХреЛ рдкрдврд╝рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реБрдП, рдЙрдиреНрд╣реЗрдВ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рд╖рдп рдореЗрдВ рдХреБрдЫ рднреА рдирдпрд╛ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдВрдд рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд╛рдлреА рдЙрдкрдпреЛрдЧреА рдЕрдВрдХ рдмрдирд╛рдПред





рд╡рд╣рд╛рдБ, рдЪрд▓реЛ рдЙрдиреНрд╣реЗрдВ "рдПрдХ рдЖрдпрд╛рдореА" рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХрд╣рддреЗ рд╣реИрдВ: рд╕рдВрдЦреНрдпрд╛, рддрд╛рд░, рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХрдИ рдореВрд▓реНрдпреЛрдВ рд╕реЗ рдпреБрдХреНрдд рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рди рдпрд╛ рд╕рд░рд▓ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рд░рдВрдЧ # EE8262 рдХреЗ рд▓рд┐рдП рд╣реЗрдХреНрд╕рд╛рдбреЗрд╕рд┐рдорд▓ рд╕рдВрдХреЗрддрди рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд▓рд╛рд▓, рдиреАрд▓реЗ рдФрд░ рд╣рд░реЗ рд░рдВрдЧ рдХреЗ рдШрдЯрдХ рд╣реЛрддреЗ рд╣реИрдВ, рдпрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЬреЛ рдЖрдкрдХреЛ рд╡рд░реНрдгреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЗ рд╕рд╛рде рдЬрдЯрд┐рд▓ рдкрджрд╛рд░реНрдереЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред



рд╕рднреА "рдПрдХ-рдЖрдпрд╛рдореА" рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ, рдпреВрдЖрд░рдЖрдИ рд╕реНрдкрд╖реНрдЯ рд╡рд┐рдЬреЗрддрд╛ рд╣реИред рдЕрдкрдиреЗ рд▓рд┐рдП рдиреНрдпрд╛рдпрд╛рдзреАрд╢, рдпрд╣рд╛рдВ рдПрдХ рдкрдардиреАрдп рдкрдВрдХреНрддрд┐ рдореЗрдВ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдбреЗрдЯрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдпрд╛ рд╡рд╣ рдЬрд╛рдирдХрд╛рд░реА рдХрд╣рд╛рдВ рд╣реИ, рдЬреЛ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдереА рдпрд╛ рд╣реИред



рдЖрдорддреМрд░ рдкрд░, рдПрдХ рдпреВрдЖрд░рдЖрдИ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ: рдПрдХ рд╕реНрдХреАрдорд╛, рдХреБрдЫ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рднрд╛рдЧ, рдПрдХ рдХреНрд╡реЗрд░реА рдФрд░ рдПрдХ рдЯреБрдХрдбрд╝рд╛:

  : [ ? ] [ # ] 
      



, HTTP , , , :

foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];








: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];




: [ ? ] [ # ]



, HTTP , , , :





foo:// username: password @ example.com :8042 /over/there/index .dtb ?type=animal&name=narwhal #nose scheme username password hostname port path extension query fragment

URL . URI .



Foundation URL' NSURL .



NSURL URLWithString :

NSURL *url = [NSURL URLWithString:@"http://example.com"];






рдпрджрд┐ рд╣рдо рдЬреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рджреЗ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдПрдХ рдЕрдорд╛рдиреНрдп URL рд╣реИ , рддреЛ рд╣рдо рд╢реВрдиреНрдп рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ ред



NSString рдореЗрдВ рд░рд╛рд╕реНрддреЛрдВ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрд▓реНрдкрд╡рд┐рдХрд╕рд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИ, рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣ рднреА рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ Apple NSString рд╕реЗ NSFL- рдЬреИрд╕реЗ API рдХреЛ NSFileManager рдЬреИрд╕реА рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИ)ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, NSString рд╕реЗ NSURL рдХрд╛ рдкреНрд░рд╡рд╛рд╕ рдЙрддрдирд╛ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЬрд┐рддрдирд╛ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрджреНрдпрдкрд┐ NSString рд╕реЗ NSURL рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрджрдо рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд╣реА рд╣реИред рдпрджрд┐ рдорд╛рди рдПрдХ URL рд╣реИ , рддреЛ рдЗрд╕реЗ NSURL рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдФрд░ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП; рдХрдХреНрд╖рд╛ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдЖрд▓рд╕реНрдп рдХрд╛ рд╕рдВрдХреЗрдд рд╣реИ рдФрд░ рдЦрд░рд╛рдм рдПрдкреАрдЖрдИ рдбрд┐рдЬрд╛рдЗрди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред



рд╡реИрд╕реЗ, рдЖрдк @@ рдХреЛ NSURL рдХреЗ рд▓рд┐рдП рд╢рд╛рдмреНрджрд┐рдХ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ (рдпрд╛рдиреА @@ "http://example.com")?


NSURL рдореЗрдВ рдПрдХ рдХреНрд▓рд╛рд╕ рдореЗрдердб + URLWithString: relationToURL :, рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рдмреЗрд╕ URL рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ URL рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╣рдореЗрд╢рд╛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рд╕рд╛рдкреЗрдХреНрд╖ рдкрде `/` рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ



рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ:



 NSURL *baseURL = [NSURL URLWithString:@"http://example.com/v1/"]; [NSURL URLWithString:@"foo" relativeToURL:baseURL]; // http://example.com/v1/foo [NSURL URLWithString:@"foo?bar=baz" relativeToURL:baseURL]; // http://example.com/v1/foo?bar=baz [NSURL URLWithString:@"/foo" relativeToURL:baseURL]; // http://example.com/foo [NSURL URLWithString:@"foo/" relativeToURL:baseURL]; // http://example.com/v1/foo [NSURL URLWithString:@"/foo/" relativeToURL:baseURL]; // http://example.com/foo/ [NSURL URLWithString:@"http://example2.com/" relativeToURL:baseURL]; // http://example2.com/
      
      







URL рдШрдЯрдХ



NSFC RFC 2396 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕рднреА URL рдШрдЯрдХреЛрдВ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:





рдЖрдк рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдФрд░ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣ рд╕рднреА рдШрдЯрдХреЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИред



рдЕрд▓рдЧ рд╕реЗ, рдореБрдЭреЗ рдпрд╣ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрджреНрдпрдкрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ URL рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди NSURLCreditnal рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ рдпрд╛ рдЙрдиреНрд╣реЗрдВ рдХреАрдЪреЗрди рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред




NSURLComponents



NSURLCompenders iOS 7 рдФрд░ Mac OS 10.9 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдП, рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, NSMutableURL рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд╛рдо рд╣реЛрдЧрд╛ред рдкреНрд░рд▓реЗрдЦрди рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг, рдпрд╣ рд╡рд░реНрдЧ рдлрд╛рдЙрдВрдбреЗрд╢рди рдХреЗ рд▓рд┐рдП "рдЧреБрдкреНрдд" рдкрд░рд┐рд╡рд░реНрдзрди рдореЗрдВ рд╕реЗ рдПрдХ рдмрди рдЧрдпрд╛ рд╣реИред



NSURLCompords рдЗрдВрд╕реНрдЯреЗрдВрд╕реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ :( + ComponentsWithString : рдФрд░ + ComponentsWithURL: resolveAgainstBaseURL :) ред рдмреЗрд╢рдХ, рдЖрдк рдЦрд╛рд▓реА рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд┐рдирд╛ рдХрд┐рд╕реА рддрд░реНрдХ рдХреЗ рдЖрд╡рдВрдЯрди рдФрд░ рдЗрдирд┐рдЯ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред



NSURL рдФрд░ NSURLCompords рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдореЗрдВ рдкрд░рд╕реНрдкрд░ рдЧреБрдг рд╣реИрдВред рдпрд╣ URL рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдШрдЯрдХреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдФрд░ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:



рдЧрд▓рдд рд╕рд░реНрдХрд┐рдЯ рд╕реЗрдЯ рдХрд░рдиреЗ рдпрд╛ рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрдЧрд╛ред


NSURLCompords рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рдкреНрд░рддрд┐рд╢рдд-рдПрдиреНрдХреЛрдбреЗрдб рд╕рдВрд╕реНрдХрд░рдг рднреА рд╣реЛрддреЗ рд╣реИрдВред



рдЗрди рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░, рд╣рдо рдЙрдиреНрд╣реЗрдВ рдкреНрд░рддрд┐рд╢рдд-рдПрдиреНрдХреЛрдбреЗрдб рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рдЗрди рдЧреБрдгреЛрдВ рдХреЛ рдмрджрд▓рддреЗ рд╣реБрдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрдВрдж рд▓рд╛рдЗрди рджреЗрдирд╛ рд╣реЛрдЧрд╛, рдЕрдиреНрдпрдерд╛ рдПрдХ рдЕрдкрд╡рд╛рджред `,` - рдПрдХ рдорд╛рдиреНрдп рдЪрд░рд┐рддреНрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ NSURL рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдиреНрдХреЛрдб рдХрд░рдиреЗ рдХреА рднреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИред ( -stringByAddingPercentEncodingWithAllowedCharacters: рд╕рдм рдХреБрдЫ рд╕рд╛рдВрдХреЗрддрд┐рдХ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдмрджрд▓рдирд╛; `рдпрджрд┐ рдЖрдк URLPathAllowedCharacterSet рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ)




рдкреНрд░рддрд┐рд╢рдд-рдПрдиреНрдХреЛрдбрд┐рдВрдЧ



NSURL - CFURLRef рдХреЗ рд▓рд┐рдП рдЯреЛрд▓-рдлреНрд░реА ред рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдПрдХ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╕реА рдПрдкреАрдЖрдИ рд╣реИ рдЬреЛ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ NSURL рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди CFURLCreateStringByAddingPercentEscapes рдФрд░ CFURLCreateStringByReplacingPercentEscapesUsingEncoding рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде:



- CFURLCreateStringByAddingPercentEscapes: рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдмрдирд╛рддрд╛ рд╣реИ, рдЬреЛ рдЙрдкрдпреБрдХреНрдд рд╡рд░реНрдгреЛрдВ рдореЗрдВ рдЙрдирдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рдмрдЪ рдЧрдП рджреГрд╢реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд░реНрдгреЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред

 CFStringRef CFURLCreateStringByAddingPercentEscapes ( CFAllocatorRef allocator, CFStringRef originalString, CFStringRef charactersToLeaveUnescaped, CFStringRef legalURLCharactersToBeEscaped, CFStringEncoding encoding );
      
      







- CFURLCreateStringByReplacingPercentEscapesUsingEncoding: рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реА рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рд╛рде рдмрдЪ рдЧрдП рдЕрдиреБрдХреНрд░рдореЛрдВ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИред



 CFStringRef CFURLCreateStringByReplacingPercentEscapesUsingEncoding ( CFAllocatorRef allocator, CFStringRef origString, CFStringRef charsToLeaveEscaped, CFStringEncoding encoding );
      
      







рдмреБрдХрдорд╛рд░реНрдХ URL



рдЕрдВрддрд┐рдо рдореБрджреНрджрд╛ рдЬрд┐рд╕ рдкрд░ рдореИрдВ рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд╡рд╣ рд╣реИ рдмреБрдХрдорд╛рд░реНрдХ рдХреЗ рд▓рд┐рдП URL , рдпреЗ рд╡реЗ рддрд░реАрдХреЗ рд╣реИрдВ, рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХреЗ рдмреАрдЪ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЙрдиреНрд╣реЗрдВ рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВред



рдмреБрдХрдорд╛рд░реНрдХ рдПрдХ рдмрдВрдж рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬреЛ NSData рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕рдВрд▓рдЧреНрди рд╣реИ, рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕реНрдерд╛рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдЬрдмрдХрд┐ рдкрде рдФрд░ рд▓рд┐рдВрдХ URL рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИрдВ, рдмреБрдХрдорд╛рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ URL рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдпрд╛ рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред




рдЖрдк рдРрдкреНрдкрд▓ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдХреЗ "рд▓реЛрдХреЗрдЯрд┐рдВрдЧ рдлрд╛рдЗрд▓реНрд╕ рдпреВрдЬрд╝рд┐рдВрдЧ рдмреБрдХрдорд╛рд░реНрдХ" рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред



All Articles