(ios) Fix warning in CDVNotification.m: Cast to smaller integer type 'int' from 'void *' #156
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.
Platforms affected
iOS
Motivation and Context
Xcode reports warning in CDVNotification.m in soundCompletionCallback (callback function of AudioServicesAddSystemSoundCompletion playBeep).
Description
In order to implement an loop counter an
int
was passed to the callback function (which requiresvoid*
) so internally a cast fromvoid*
toint
was required. However, this is a fragile approach and recent versions of Xcode warns about this.Instead of using a raw
int
value I changed toNSNumber
which is is a pointer and can be retained while the beep is being played.I wrote the code to support ARC and non-ARC code as same as surrounding code.
Testing
Play beep works normally. No visible changes for users as expected.
Checklist
(platform)
if this change only applies to one platform (e.g.(android)
)