I was looking through Foundation for stuff to do and saw NSProgress, NSExpression and NSSortDescriptor. They seem to be most reliant on KVC, and as KVC is not available without the Objective-C runtime, I’m not sure what those classes are doing here. Are those classes doomed to be dropped? Or is there another way to implement them?
It’s likely that we’ll have to come up with some alternative API in these cases. For example, in NSProgress I could imagine a callback for progress updates instead of observing the properties. It’s not ideal but I don’t think we want to undertake a reinvention of KVO when we do not have the Objective-C runtime present (so much of it relies on that dynamic behavior).
- Tony
···
On Mar 14, 2016, at 4:14 PM, David Hart via swift-corelibs-dev <swift-corelibs-dev@swift.org> wrote:
I was looking through Foundation for stuff to do and saw NSProgress, NSExpression and NSSortDescriptor. They seem to be most reliant on KVC, and as KVC is not available without the Objective-C runtime, I’m not sure what those classes are doing here. Are those classes doomed to be dropped? Or is there another way to implement them?
Sorry, I said NSProgress but I meant NSPredicate. I personally can't even imagine what a alternative API for NSPredicate would look like
···
On 15 Mar 2016, at 00:21, Tony Parker <anthony.parker@apple.com> wrote:
Hi David,
It’s likely that we’ll have to come up with some alternative API in these cases. For example, in NSProgress I could imagine a callback for progress updates instead of observing the properties. It’s not ideal but I don’t think we want to undertake a reinvention of KVO when we do not have the Objective-C runtime present (so much of it relies on that dynamic behavior).
- Tony
On Mar 14, 2016, at 4:14 PM, David Hart via swift-corelibs-dev <swift-corelibs-dev@swift.org> wrote:
I was looking through Foundation for stuff to do and saw NSProgress, NSExpression and NSSortDescriptor. They seem to be most reliant on KVC, and as KVC is not available without the Objective-C runtime, I’m not sure what those classes are doing here. Are those classes doomed to be dropped? Or is there another way to implement them?