[swift-users] unsafeBitCast to Unimplemented Class
Saagar Jha
saagar at saagarjha.com
Tue Feb 7 23:37:12 CST 2017
Saagar Jha
> On Feb 6, 2017, at 10:57 PM, Andrew Trick <atrick at apple.com> wrote:
>
>
>> On Feb 6, 2017, at 8:51 PM, Dave Abrahams <dabrahams at apple.com> wrote:
>>
>>
>> on Mon Feb 06 2017, Andrew Trick <atrick-AT-apple.com> wrote:
>>
>>> Is a missing declaration a use case that needs to be supported?
>>
>> I couldn't say.
>>
>>> Wouldn’t it be more proper to use selector based dispatch in those
>>> cases?
>>
>> Example, please? I don't know what that means, though I probably should.
>>
>> --
>> -Dave
>
> I phrased that as a question because I'm the last person who should be giving advice here... What I had in mind is this:
>
> if ([self isKindOfClass:NSClassFromString(@“Bar”)]) {
> self.perform(@selector(FakeBarProtocol.foo))
> }
>
> It's not type safe, but it's a lot better than outright lying about the reference's dynamic type.
>
> Of course, the root problem is that Bar's declaration is unavailable, and that's not a normal, expected thing.
Yep, it’s not–that’s why I need to go through this trouble :) My plugin is loaded at runtime, so the headers are the best I’ve got (though if you’ve got a way to perform a stricter check, I’m all ears!) Until then, all of these methods appear to be sugarcoating around perform(selector:)–is there any “preferred” way to do this?
Also, class_getName(_:) seems to return a UnsafePointer<Int8>, is this just a C-style string? Should I use this over NSStringFromClass or isKindOfClass?
>
> -Andy
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20170207/b4360fa0/attachment.html>
More information about the swift-users
mailing list