isEqual is defined on NSObject. You could also try using an array of AnyHashable and calling == instead of isEqual.
Slava > On Oct 24, 2017, at 3:09 PM, Jon Shier <[email protected]> wrote: > > Slava: > How would this change affect this code from Alamofire, used to compare > two SecKey instances for public key pinning: > > outerLoop: for serverPublicKey in ServerTrustPolicy.publicKeys(for: > serverTrust) as [AnyObject] { > for pinnedPublicKey in pinnedPublicKeys as [AnyObject] { > if serverPublicKey.isEqual(pinnedPublicKey) { > serverTrustIsValid = true > break outerLoop > } > } > } > > I’m not sure why, but the AnyObject casting makes this work correctly, even > in Swift 4. I’ve tried to “modernize” it by using Sets (compare the pinned > keys with the available keys Sets) but it doesn’t work (hash implementation > for SecKey is weird?). I’m guessing that with the AnyObject case and > isEqual, some underlying implementation is changed and equality works > properly (or well enough for this use). I’m happy to get rid of this hack, > but I’m not sure of any other method to accomplish our goals here. > > > > Jon Shier > >> On Oct 24, 2017, at 6:02 PM, Slava Pestov via swift-evolution >> <[email protected]> wrote: >> >> Hi all, >> >> Dynamic dispatch of methods through AnyObject is a source of implementation >> complexity, has many known bugs which we are not going to fix, and no longer >> makes sense now in an id-as-Any world; AnyObject is not the ‘common >> currency’ type for arbitrary Objective-C objects anymore. >> >> I would like to propose we deprecate it as follows: >> >> - Unconditional warning in Swift 4.1, with a fixit to add an ‘as’ cast to >> cast the base value to the right type >> - Error in Swift 5 in -swift-version 5 mode >> >> Thoughts? Does anyone actually rely on this feature, instead of just >> stumbling on it by accident once in a while? >> >> Slava >> _______________________________________________ >> swift-evolution mailing list >> [email protected] >> https://lists.swift.org/mailman/listinfo/swift-evolution > _______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
