Jouer avec des URL, en les construisant de manière incrémentielle à partir d'autres URL découvertes. Ce faisant, je voudrais continuer à utiliser des objets NSURL au lieu de manipuler NSStrings, juste pour obtenir les vérifications supplémentaires et les méthodes spécifiques à l'URL de la classe d'URL.NSURL analogique à CFURLCreateCopyAppendingPathComponent?
Malheureusement, il semble qu'il n'y a pas moyen d'obtenir ce qui suit pour se joindre ensemble comment je souhaite:
NSURL *base = [NSURL URLWithString:@"http://my.url/path"]; NSString *suffix = @"sub/path";
Je veux les joindre pour obtenir:
http://my.url/path/sub/path
Mais le mieux que je puisse paraître pour obtenir est:
NSURL *final = [NSURL URLWithString:suffix relativeToURL:base];
qui trims hors du chemin sur la base, ce qui:
http://my.url/sub/path
Il y a une fonction CoreFoundation qui le fait:
CFURLRef CFURLCreateCopyAppendingPathComponent ( CFAllocatorRef allocator, CFURLRef url, CFStringRef pathComponent, Boolean isDirectory );
Ce qui semble fonctionner très bien, mais rebondir avant/arrière de ObjC à C est discordante et ennuyeux ... Je préfère tout simplement des cordes ... manipule Est-ce que je manque quelque chose? Autre que d'être trop difficile, bien sûr. :)
Une chose à surveiller est de savoir comment CoreFoundation gère les URL relatives (celles avec à la fois un -baseURL et -relativeString). Vous voulez probablement faire (CFURLRef) [self absoluteURL] à la place. –
Nice, ça va marcher. Merci. –
Bonne suggestion Mike, j'ai fait le réglage –