[ https://issues.apache.org/jira/browse/CB-8863?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15009964#comment-15009964 ]
ASF GitHub Bot commented on CB-8863: ------------------------------------ Github user asfgit closed the pull request at: https://github.com/apache/cordova-plugin-camera/pull/139 > Fix potential problems with blocks usage in core plugins > -------------------------------------------------------- > > Key: CB-8863 > URL: https://issues.apache.org/jira/browse/CB-8863 > Project: Apache Cordova > Issue Type: Bug > Components: iOS > Reporter: Shazron Abdullah > Assignee: Jesse MacFadyen > Labels: cordova-ios-5.0.x > > Audit the core plugins to check for proper blocks usage. > Problems that I see can be summed up in this (fixed) code: > https://github.com/apache/cordova-plugin-splashscreen/blob/fa60f01adcba2d21583de7972a0facc4da1eb75e/src/ios/CDVSplashScreen.m#L292-L313 > 1. You need a weak reference to "self" in blocks to prevent retain cycle > problems. > Fix: > https://github.com/apache/cordova-plugin-splashscreen/blob/fa60f01adcba2d21583de7972a0facc4da1eb75e/src/ios/CDVSplashScreen.m#L292 > 2. Anything that calls UIKit methods, which includes plugins that write > JavaScript back to the UIWebView (commandDelegate functions), must be called > in the main thread. > Fix: > https://github.com/apache/cordova-plugin-splashscreen/blob/fa60f01adcba2d21583de7972a0facc4da1eb75e/src/ios/CDVSplashScreen.m#L308-L310 > (UPDATE: we actually already handle this in evalJS) > 3. Avoid creating private variables like this in the first place -- I would > create a class extension which will effectively have "private" properties > (nothing is truly private in objc). This is to avoid this situation in the > block where you have to cast the weak self into a strong self (and check it's > still around), just to access a private variable: > https://github.com/apache/cordova-plugin-splashscreen/blob/fa60f01adcba2d21583de7972a0facc4da1eb75e/src/ios/CDVSplashScreen.m#L298-L304 > Of course since we are modifying UIKit items here, rule 2 above also applies. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org