Best Practices with iOS and NativeScript
Delegates, delegates, DELEGATES!!
Always retain custom delegate implementations that you use in your own custom iOS classes. Not doing so can cause your delegate to get garbage collected early and functionality does not work as expected.
For example:
BAD:
let applePayController: PKPaymentAuthorizationViewController
applePayController =
PKPaymentAuthorizationViewController.alloc().initWithPaymentRequest(paymentRequest)
applePayController.delegate =
PKPaymentAuthorizationViewControllerDelegateImpl.initWithOwner(this)
GOOD:
let applePayController: PKPaymentAuthorizationViewController
let applePayControllerDelegate: PKPaymentAuthorizationViewControllerDelegateImpl
applePayController =
PKPaymentAuthorizationViewController.alloc().initWithPaymentRequest(paymentRequest)
applePayControllerDelegate =
PKPaymentAuthorizationViewControllerDelegateImpl.initWithOwner(this)
applePayController.delegate = applePayControllerDelegate