Arm64 传参的问题

问题描述: IDA分析MobileNotes的
-[ICNoteEditorViewController textView:shouldChangeTextInRange:replacementText:]
函数时, 发现传参的个数比方法声明时多了一个.这个函数是编辑笔记时,点击键盘会触发的函数, 继承于协议. 请问参数多了一个如何理解, 或者应该了解什么相关知识?

IDA分析出来的代码:

lldb在此处设置断点, 点击键盘上的字母"q", 打印各寄存器结果如下:

typedef struct _NSRange {
    NSUInteger location;
    NSUInteger length;
} NSRange;

大概是因为NSRange占用两个寄存器

解答了我的疑惑, 非常感谢!

请问如何找到这个参数的结构定义.

……SDK里的头文件

找到了! 谢谢