Deprecate misnamed purchase(params) function in Obj-C #4645
+17
−3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
The
purchase(_ params: PurchaseParams, completion: @escaping PurchaseCompletedBlock)
was mistakenly exposed to Objective-C with the nameparams
in #4485.Description
This PR deprecates that existing
params
name in Objective-C (@objc(params:withCompletion:)
) and replaces it withpurchaseWithParams
(@objc(purchaseWithParams:completion:)
).Implementation Details
Swift doesn't support deprecating only an Objective-C selector. You need to create a second Swift function with the correct
@objc
selector and ensure that the Swift function names don't conflict. This isn't ideal because it adds an extra deprecated function to the Swift API, but it gets the job done.So to accomplish this, this PR renames the existing Swift function with the incorrect
@objc
selector topurchaseWithParams
and marks it as deprecated.Old Obj-C API
New Obj-C API