User:Nicolas17/MobileMail/MessageViewController/previewActionForSwipeAction:withMessage:forSwipe:: Difference between revisions

From iPhone Development Wiki
(Add more introductory info)
(Split reversing info into a section)
Line 6: Line 6:
It's called by <code>leadingPreviewAction</code> and <code>trailingPreviewAction</code> to get the actions on the sides of the peek, and by <code>_previewActionsForSwipeActions:excludingSwipeActions:</code> for the actions at the bottom.
It's called by <code>leadingPreviewAction</code> and <code>trailingPreviewAction</code> to get the actions on the sides of the peek, and by <code>_previewActionsForSwipeActions:excludingSwipeActions:</code> for the actions at the bottom.


This method contains two jump tables (at least in arm64), presumably compiled from <tt>switch</tt> statements, which Hopper doesn't handle automatically even in the disassembly, and it's a bit of a pain to figure them out manually.
== Reverse engineering info ==
I'm starting to decompile this method and will put the pseudocode in this page.
 
This method contains two jump tables (at least in arm64), presumably compiled from <tt>switch</tt> statements, which Hopper doesn't handle automatically even in the disassembly, and it will be a bit of a pain to figure them out manually.

Revision as of 20:29, 14 February 2016

-(UIPreviewAction*)_previewActionForSwipeAction:(unsigned long long)action withMessage:(id)message forSwipe:(BOOL)swipe;

This method in MessageViewController creates a UIPreviewAction object (action shown in the 3D Touch "peek" view). It's called by leadingPreviewAction and trailingPreviewAction to get the actions on the sides of the peek, and by _previewActionsForSwipeActions:excludingSwipeActions: for the actions at the bottom.

Reverse engineering info

I'm starting to decompile this method and will put the pseudocode in this page.

This method contains two jump tables (at least in arm64), presumably compiled from switch statements, which Hopper doesn't handle automatically even in the disassembly, and it will be a bit of a pain to figure them out manually.