小编Eri*_*urg的帖子

基金会可以告诉我Objective-C方法是否需要特殊的结构返回?

我理解的背景:Objective-C方法调用基本上是一个带有两个隐藏参数(接收器和选择器)的C函数调用.Objective-C运行时包含一个名为objc_msgSend()的函数,该函数允许以这种方式调用方法.不幸的是,当函数返回结构时,可能需要一些特殊处理.有一些神秘的(有些人可能会说是疯狂的)规则来控制结构是否像其他值一样被返回,或者它是否实际上是通过引用在隐藏的第一个参数中返回的.对于Objective-C,还有一个名为objc_msgSend_stret()的函数必须在这些情况下使用.

问题:给定一个方法,NSMethodSignature或其他什么可以告诉我是否必须使用objc_msgSend()或objc_msgSend_stret()?到目前为止,我们已经发现NSMethodSignature知道这一点,它在调试输出中打印它,但似乎没有公共API.

如果你想回答"你为什么要这样做?!",请在阅读之前阅读以下内容:https://github.com/erikdoe/ocmock/pull/41

objective-c objective-c-runtime

9
推荐指数
1
解决办法
189
查看次数

标签 统计

objective-c ×1

objective-c-runtime ×1