> On 21 Apr 2016, at 09:09, Graham Cox <graham....@bigpond.com> wrote: > > >> On 21 Apr 2016, at 3:22 PM, Quincey Morris >> <quinceymor...@rivergatesoftware.com> wrote: >> >> On Apr 20, 2016, at 22:16 , Graham Cox <graham....@bigpond.com> wrote: >>> >>> But it’s 10.9+ only. I really need a solution that will work back to 10.7 >>> (or 10.8 at the latest). >> >> Then I’d guess you’d need to construct the entire URL as a string first, >> then use initWithString. Presumably ‘URLByAppendingPathComponent’ %-encodes >> a # because you’ve told it that your substring is a *path* component. If you >> give it a whole string, I’d assume it figures out that it’s got a “fragment” >> at the end. >> >> But I’m just guessing now. >> > > > Yah, that works. Thanks. > > It strikes me that it’s a bug that URLByAppendingPathComponent: doesn’t parse > for a fragment just as -initWithString: does though, the anchor/fragment is a > perfectly reasonable part of a path and what other possible ambiguious > meaning could it have? It makes hard work of something that should be easy.
Nope, very definitely not a bug. The easiest way to do what the OP wants on 10.7 is probably: NSURL *pathURL = [myURL URLByAppendingPathComponent:@“page”]; NSURL *url = [NSURL URLWithString:@“#fragment” relativeToURL:pathURL]; Don’t forget to properly escape the fragment string if it’s coming in from outside. Alternatively, grab my KSURLComponents class which clones the NSURLComponents API back to 10.6. Mike. _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com