ios - Swift 4: XCode 9 Beta: Static factory method in Objective-C produces a valid object in Debugger, but NIL in the code -


i have following swift class:

class videofacedetectioncontroller: uiviewcontroller, ipvideoembeddercontroldelegate {  var videoplayer: ipvideoembeddercontrol?  // note, not weak reference ... 

then have method in objective-c (in referenced static library): generateplayer(), follows:

+ (ipvideoembeddercontrol*)generateplayer {     ipvideoembeddercontrol* control = [ipload         objectwithclass:[ipvideoembeddercontrol class]         frombundle:[nsbundle bundlewithidentifier:videoframeworkbundleid]];      control.provider = [ipvideoplaybackfactory getprovider];      [control createembeddingview];     return control; } 

i call in swift 4 so:

videoplayer? = ipvideoembeddercontrol.generateplayer() videoplayer?.translatesautoresizingmaskintoconstraints = false; 

now put breakpoint on second line (translatesauto....), , inspect videoplayer. it's nil.

now po ipvideoembeddercontrol.generateplayer() in console, , produces valid instance, has frame:

 (lldb) po ipvideoembeddercontrol.generateplayer() ▿ optional<ipvideoembeddercontrol>  (lldb) po ipvideoembeddercontrol.generateplayer().description "<ipvideoembeddercontrol: 0x7faf88c19390; baseclass = uicontrol; frame = (0 0; 320 349); autoresize = w+h; layer = <calayer: 0x60c0002265c0>>" 

so how can in debugger, valid object produced , returned, in code, nil value returned same exact method?

i'm using xcode beta 9.0 (release 5), ipad air 2 (ios 11) simulator. can't verify on physical devices right now, because don't have running ios 11 yet.

if line not typo , use in app, not work expect:

videoplayer? = ipvideoembeddercontrol.generateplayer() 

try changing line to:

videoplayer = ipvideoembeddercontrol.generateplayer() 

you know next line sort of optional chaining.

videoplayer?.translatesautoresizingmaskintoconstraints = false; 

when videoplayer nil, rest of line safely ignored , nothing.

all same in first line:

videoplayer? = ipvideoembeddercontrol.generateplayer() 

when videoplayer nil, rest of line safely ignored , nothing.


Comments

Popular posts from this blog

What is happening when Matlab is starting a "parallel pool"? -

angular - DownloadURL return null in below code -

php - Cannot override Laravel Spark authentication with own implementation -