<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body><div>The documentation is wrong (for Swift).<br></div>
<div><br></div>
<div>For file URLs, this method returns true/false without throwing an error (at least, if the file doesn't exist there's no error; I don't know if there are conditions that would cause an error to be returned).<br></div>
<div><br></div>
<div>For non-file URLs this method throws an error.<br></div>
<div><br></div>
<div>The bit about "For other URL types, false is returned" is written for Obj-C, where you can completely disregard the error. You can't disregard the error in Swift, so it doesn't apply (though you can use try? and treat a nil value the same as false)<br></div>
<div><br></div>
<div>-Kevin</div>
<div><br></div>
<div>On Sun, Aug 7, 2016, at 10:41 AM, Charles Srstka via swift-evolution wrote:<br></div>
<blockquote type="cite"><div>-[NSURL checkResourceIsReachableAndReturnError:] has taken on several forms in Swift during its development, sometimes returning a Boolean and an error by reference, sometimes returning Void and using Swift’s do/try/catch system. In Swift 3, though, it appears to do both, which is weird:<br></div>
<div><br></div>
<div><span class="colour" style="color:rgb(170, 13, 145)"><span class="font" style="font-family:Menlo, monospace"><span class="size" style="font-size:14px">func</span></span></span><span class="highlight" style="background-color:rgb(249, 250, 250)"><span class="colour" style="color:rgb(51, 51, 51)"><span class="font" style="font-family:Menlo, monospace"><span class="size" style="font-size:14px">&nbsp;</span></span></span></span><span class="font" style="font-family:Menlo, monospace"><span class="size" style="font-size:14px">checkResourceIsReachable</span></span><span class="highlight" style="background-color:rgb(249, 250, 250)"><span class="colour" style="color:rgb(51, 51, 51)"><span class="font" style="font-family:Menlo, monospace"><span class="size" style="font-size:14px">()&nbsp;</span></span></span></span><span class="colour" style="color:rgb(170, 13, 145)"><span class="font" style="font-family:Menlo, monospace"><span class="size" style="font-size:14px">throws</span></span></span><span class="highlight" style="background-color:rgb(249, 250, 250)"><span class="colour" style="color:rgb(51, 51, 51)"><span class="font" style="font-family:Menlo, monospace"><span class="size" style="font-size:14px">&nbsp;-&gt;&nbsp;</span></span></span></span><span class="colour" style="color:rgb(92, 38, 153)"><span class="font" style="font-family:Menlo, monospace"><span class="size" style="font-size:14px">Bool</span></span></span><br></div>
<div><span class="colour" style="color:rgb(92, 38, 153)"><span class="font" style="font-family:Menlo, monospace"><span class="size" style="font-size:14px"></span></span></span><br></div>
<div><span class="colour" style="color:rgb(92, 38, 153)"><span class="font" style="font-family:Menlo, monospace"><span class="size" style="font-size:14px"><span class="colour" style="color:rgb(0, 0, 0)"><span class="font" style="font-family:Helvetica"><span class="size" style="font-size:12px">All the documentation has to say about this is:</span></span></span></span></span></span><br></div>
<div><span class="colour" style="color:rgb(92, 38, 153)"><span class="font" style="font-family:Menlo, monospace"><span class="size" style="font-size:14px"><span class="colour" style="color:rgb(0, 0, 0)"><span class="font" style="font-family:Helvetica"><span class="size" style="font-size:12px"></span></span></span></span></span></span><br></div>
<div><span class="colour" style="color:rgb(92, 38, 153)"><span class="font" style="font-family:Menlo, monospace"><span class="size" style="font-size:14px"><span class="colour" style="color:rgb(0, 0, 0)"><span class="font" style="font-family:Helvetica"><span class="size" style="font-size:12px">"</span></span></span></span></span></span>This method is currently applicable only to URLs for file system resources. For other URL types, false is returned.”<br></div>
<div><br></div>
<div>It does not, however, say whether non-file URLs are the only thing that can cause a return of ‘false’, so I don’t know whether I should be checking the return value when checking a file URL or not. This results in having to check both the return value *and* the catch block each time, which is fairly awkward. I’m also not clear on why checking reachability on a non-file URL can’t just return an error like it did in the past.<br></div>
<div><br></div>
<div>What’s the rationale behind this?<br></div>
<div><br></div>
<div>Charles<br></div>
<div><br></div>
<div><br></div>
<div><br></div>
<div><u>_______________________________________________</u><br></div>
<div>swift-evolution mailing list<br></div>
<div><a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br></div>
<div><a href="https://lists.swift.org/mailman/listinfo/swift-evolution">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br></div>
</blockquote><div><br></div>
</body>
</html>