[swift-users] Can I do dynamic casting?

Zhao Xin owenzx at gmail.com
Thu Aug 25 07:38:48 CDT 2016


Thanks, Jordan. Is there any other way to do that?

Zhaoxin

On Thu, Aug 25, 2016 at 6:40 PM, Johan Segerfeldt <Johan.Segerfeldt at fiwe.se>
wrote:

> Zhaoxin,
>
> You are trying to cast to a type which is defined by a variable at runtime.
> Casting with `as` is done at compile-time. The variable has no defined
> value at this time.
>
> The compiler cannot infer what the value of a variable is going to be.
> It can only infer types by static analysis.
>
>
> Regards
> Johan
>
> > Is that possible to do dynamic casting?
> >
> > My code:
> >
> > >
> > > importFoundation
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > letarray = [1,2,3,4,5]
> > >
> > >
> > >
> > > letdictionary:[String:Any] = ["numbers":array]
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > ifletvalue =dictionary["numbers"] {
> > >
> > >
> > >
> > > lettype = type(of: value)
> > >
> > >
> > >
> > > print(type)// Array<Int>
> > >
> > >
> > >
> > > letnumbers = valueas!Array<Int>// [1, 2, 3, 4, 5]
> > >
> > >
> > >
> > > //let numbers2 = value as! type // error: use of undeclared type 'type'
> > >
> > >
> > >
> > > }
> > >
> > >
> > As you can see, the dynamic casting leads an error. Is there a way to do
> this? Thanks.
> >
> >
> >
> >
> >
> >
> > Zhaoxin
> >
> >
> >
> >
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20160825/9d5956b6/attachment.html>


More information about the swift-users mailing list