fix: replace associated object with current TTD tracker #5048
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.
📜 Description
currentTTDTracker
instead of an associated object💡 Motivation and Context
We had a an edge case reported where a view controller was dismissed, and in the completion handler the methods
viewDidLoad()
andviewDidLayoutSubviews()
were called. This methods were swizzled and triggered a TTID report.As the view controller was already being deallocated, a race-condition occurred and the
objc_getAssociatedObject
accessed a memory with "random" objects instead, leading to an SDK crash.Here's a link to the Apple Documentation mentioning that view life cycle methods should not be invoked directly.
Closes #5087
💚 How did you test it?
TODO
📝 Checklist
You have to check all boxes before merging:
sendDefaultPII
is enabled.