> On 31 Mar 2016, at 21:44, Tony Parker <anthony.par...@apple.com> wrote: > > Hi Zach, Daniel, > >> On Mar 31, 2016, at 11:03 AM, Zach Waldowski via swift-corelibs-dev >> <swift-corelibs-dev@swift.org> wrote: >> >> 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 >> > > Yes, the reason we left these out is that they are very platform specific. > > I could potentially see some kind of solution here where a dramatically > reduced set of keys are available on all platforms. Things like file name and > file size are probably able to be implemented in a cross-platform way. For > now, I just left the whole thing out because sorting through what would be > portable or not would be a pretty large task. > > - Tony
Thanks for the info. I agree that a Swift overlay for Darwin Foundation would be great, and adding those versions to SwiftFoundation would be most excellent. I remember that when these APIs were added to OS X once of the reasons was that it provides a unified API for all these kinds of things, and it allows the library to cache these, dramatically reducing the calls to stat(2) and friends. I think the fact that these are so platform specific is a good reason to include them: Foundation’s goal is to “Provide a level of OS independence, to enhance portability”. /Daniel _______________________________________________ swift-corelibs-dev mailing list swift-corelibs-dev@swift.org https://lists.swift.org/mailman/listinfo/swift-corelibs-dev