Re: cannot invoke 'substringToIndex' with an argument list of type '(Int)'
The docs for NSString say that substringToIndex is declared like that. If you looked at the autocomplete when you typed it in you’d see it wants an Index, that’s a method on String. And no it’s not in the documentation but it is in the API diffs and autocomplete gets it right (for me at least) and Cmd Clicking takes me there too. If you want to use an NSString method with the same name as a String one, cast to an NSString, ( s as NSString ) same with substringFromIndex and NSURL is a fallible initializer so you can’t return it like that, you unwrap it, or throw, or test it or something. Your last mail about NSURLs didn’t make any sense either by the way. You were using .rawValue() on things typed as Strings, Strings don’t have raw values, so I think that isn’t really your code. On 7 Jul 2015, at 15:02, Rick Mann rm...@latencyzero.com wrote: What? The docs say that substringToIndex is declared like this: func substringToIndex(_ to: Int) - String So, why can't I call that here: extension NSURL { func normalizedURLByAppendingPathComponent(var inComponent : String) - NSURL { var s = self.absoluteString; if s.hasSuffix(/) { s = s.substringToIndex(s.characters.count - 1) } if inComponent.hasPrefix(/) { inComponent = inComponent.substringFromIndex(1); } s = s.stringByAppendingString(/); s = s.stringByAppendingString(inComponent); let u = NSURL(string: s); return u; } } -- Rick Mann rm...@latencyzero.com ___ 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/rols%40rols.org This email sent to r...@rols.org ___ 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
cannot invoke 'substringToIndex' with an argument list of type '(Int)'
What? The docs say that substringToIndex is declared like this: func substringToIndex(_ to: Int) - String So, why can't I call that here: extension NSURL { func normalizedURLByAppendingPathComponent(var inComponent : String) - NSURL { var s = self.absoluteString; if s.hasSuffix(/) { s = s.substringToIndex(s.characters.count - 1) } if inComponent.hasPrefix(/) { inComponent = inComponent.substringFromIndex(1); } s = s.stringByAppendingString(/); s = s.stringByAppendingString(inComponent); let u = NSURL(string: s); return u; } } -- Rick Mann rm...@latencyzero.com ___ 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
Re: cannot invoke 'substringToIndex' with an argument list of type '(Int)'
You should file a documentation bug. The signature is actually: func substringFromIndex(index: String.Index) - String So what you really want I believe is: s = s.substringToIndex(advance(s.endIndex, -1)) On Tue, Jul 7, 2015 at 2:02 AM, Rick Mann rm...@latencyzero.com wrote: What? The docs say that substringToIndex is declared like this: func substringToIndex(_ to: Int) - String So, why can't I call that here: extension NSURL { func normalizedURLByAppendingPathComponent(var inComponent : String) - NSURL { var s = self.absoluteString; if s.hasSuffix(/) { s = s.substringToIndex(s.characters.count - 1) } if inComponent.hasPrefix(/) { inComponent = inComponent.substringFromIndex(1); } s = s.stringByAppendingString(/); s = s.stringByAppendingString(inComponent); let u = NSURL(string: s); return u; } } -- Rick Mann rm...@latencyzero.com ___ 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/stephen.butler%40gmail.com This email sent to stephen.but...@gmail.com ___ 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
Re: cannot invoke 'substringToIndex' with an argument list of type '(Int)'
On Jul 7, 2015, at 00:22 , Roland King r...@rols.org wrote: If you want to use an NSString method with the same name as a String one, cast to an NSString, ( s as NSString ) The other thing to be really, really careful of when bridging is that all indexes and ranges derived from NSString API are counting by UTF-16 code units**, as they’ve always done. Indexes and ranges derived from String API are counting by graphemes. ** At least, that was the situation in Swift 1.2. I haven’t looked into what’s changed with NSString bridging in Swift 2, but I suspect caution is still advisable. ___ 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
Re: cannot invoke 'substringToIndex' with an argument list of type '(Int)'
The bug is really that they haven’t documented the new String method so you only get the old (and still-existing) NSString method. I did find it in some documentation which pointed to online documentation (you can tell by the lag) so I went to prefs, updated my docsets, and now I don’t have it any more, which is rather par for the course and generally sad. new Xcode tomorrow (?), perhaps we’ll get a docs update. On 7 Jul 2015, at 15:25, Stephen J. Butler stephen.but...@gmail.com wrote: You should file a documentation bug. The signature is actually: func substringFromIndex(index: String.Index) - String So what you really want I believe is: s = s.substringToIndex(advance(s.endIndex, -1)) On Tue, Jul 7, 2015 at 2:02 AM, Rick Mann rm...@latencyzero.com wrote: What? The docs say that substringToIndex is declared like this: func substringToIndex(_ to: Int) - String So, why can't I call that here: extension NSURL { func normalizedURLByAppendingPathComponent(var inComponent : String) - NSURL { var s = self.absoluteString; if s.hasSuffix(/) { s = s.substringToIndex(s.characters.count - 1) } if inComponent.hasPrefix(/) { inComponent = inComponent.substringFromIndex(1); } s = s.stringByAppendingString(/); s = s.stringByAppendingString(inComponent); let u = NSURL(string: s); return u; } } -- Rick Mann rm...@latencyzero.com ___ 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/stephen.butler%40gmail.com This email sent to stephen.but...@gmail.com ___ 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/rols%40rols.org This email sent to r...@rols.org ___ 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
Re: cannot invoke 'substringToIndex' with an argument list of type '(Int)'
On Jul 7, 2015, at 2:47 AM, Rick Mann rm...@latencyzero.com wrote: On Jul 7, 2015, at 00:46 , Charles Srstka cocoa...@charlessoft.com wrote: You don’t have an NSString. You have a String. It works differently. Well, they're toll-free bridged, and substringToIndex() is a method on NSString (or so I thought). Anyway, it turns out to be an error in the documentation, so now I understand. They are *not* toll-free bridged. When you cast one to the other, it actually does a conversion. The documentation is not incorrect; the method on NSString *does* take an Int. If you try it on strings that are actually typed as NSString, you’ll see that they take an Int: import Foundation let str = foobar as NSString let str2 = str.substringFromIndex(3) This results in str2 being “bar”. Swift Strings, however, follow different rules, in order to be safe about cases where a character in a string takes up more than one UTF-16 code unit. Charles ___ 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