Caminho de URL adequado com escape em Cocoa

Não faça isso:

NSString *escaped = [path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

Faça isso:

CFStringRef escaped = CFURLCreateStringByAddingPercentEscapes(NULL,
(CFStringRef)path,
NULL
,
CFSTR
(";?#"),
kCFStringEncodingUTF8
);