[swift-corelibs-dev] NSURL getResourceValue

Zach Waldowski zach at waldowski.me
Thu Mar 31 13:03:31 CDT 2016


The semantics of the methods are fairly nuanced in ObjC.

You can have a resource value that fails to be fetched, or one that
succeeded to fetch but had no value. A Swift version would model this as
`throws -> AnyObject?`.

For the dictionary version, you may ask for a resource value, it
succeeds, but isn't included in the dictionary because it was `nil`.
This version is modeled "fine" in Swift, but like you mentioned it also
isn't available.

Sorry for not being clear — the point was that it is desired for
corelibs-Foundation to have the same API as Darwin-Foundation, as has
been mentioned on this mailing list. Anything outside that has to be
approved (internally to Apple, I think?), and this just hasn't been
worked through yet.

Unrelated, it also appears that the underlying versions
(CFURLCopyResourcePropertyForKey and CFURLCopyResourcePropertiesForKeys)
aren't included in corelibs-CoreFoundation. I have to imagine those are
pretty platform-specific, but I can't comment on their conspicuous
disappearance because I have no more knowledge than you do. ;)

Zach

On Thu, Mar 31, 2016, at 12:23 PM, Daniel Eggert wrote:
> Well, there's
> 
> func resourceValuesForKeys(_ keys: [String]) throws -> [String :
> AnyObject]
> 
> which doesn't use AutoreleasingUnsafeMutablePointer, but that doesn't
> exist in Swift, either.
> 
> And the other one could have a replacement like so:
> 
> func resourceValue(forKey key: String) -> AnyObject throws
> 
> The "NSURL resource value" API has 7 methods of which none exist in
> SwiftFoundation.
> 
> /Daniel
> 
> 
> 
> > On 31 Mar 2016, at 15:37, Zach Waldowski via swift-corelibs-dev <swift-corelibs-dev at swift.org> wrote:
> > 
> > You can't have AutoreleasingUnsafeMutablePointer without Objective-C
> > interop.
> > 
> > Zach
> > 
> > On Thu, Mar 31, 2016, at 07:17 AM, Daniel Eggert via swift-corelibs-dev
> > wrote:
> >> What's the reason for the "resource value" API on NSURL not being present
> >> in SwiftFoundation?
> >> 
> >> /Daniel
> >> 
> >> 
> >> func getResourceValue(_ value:
> >> AutoreleasingUnsafeMutablePointer<AnyObject?>, forKey key: String) throws
> >> 
> >> _______________________________________________
> >> swift-corelibs-dev mailing list
> >> swift-corelibs-dev at swift.org
> >> https://lists.swift.org/mailman/listinfo/swift-corelibs-dev
> > _______________________________________________
> > swift-corelibs-dev mailing list
> > swift-corelibs-dev at swift.org
> > https://lists.swift.org/mailman/listinfo/swift-corelibs-dev
> 


More information about the swift-corelibs-dev mailing list