> On Jan 4, 2017, at 21:36, Charlie Monroe via swift-evolution 
> <[email protected]> wrote:
> 
> I'm personally coming back and forth on this - my code is now 99% pure Swift, 
> so I don't really need @objc declarations aside for:
> 
> - CoreData - which is fairly obvious and @NSManaged will scream if the type 
> isn't @objc-compatible
> 
> - UI - and this is a big part. Unfortunately, I've relied on @objc inference 
> in multiple cases when it comes to binding (macOS). Or to be more precise 
> @objc implied dynamic. So for NSObject subclasses
> 
> var foo: String = ""
> 
> is without further annotations usable with bindings (though IB screams that 
> NSString is expected and it found String). And who has previously dealt with 
> them knows that this change will be hell to debug and discover all the places 
> since Interface Builder usually isn't very helpful in this matter.
> 
> In order for the migration to go smoothly, it would require the IB to do some 
> kind of keyPath validations and add annotations to those places as well. 
> Without it, I can't imagine the transition... IB has been a source of great 
> deal of ObjC -> Swift headaches, I wish there weren't any more.

Good^W Bad news: this never worked. @objc does not imply 'dynamic', so you're 
just dropping updates on the floor. Unfortunately the bindings system can't 
detect this case and warn you about it.

Jordan

_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to