首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >va_list在imp_implementationWithBlock get EXC_BAD_ACCESS中的应用

va_list在imp_implementationWithBlock get EXC_BAD_ACCESS中的应用
EN

Stack Overflow用户
提问于 2017-08-25 07:26:33
回答 1查看 268关注 0票数 0

我将我的设备升级到iOS 11-beta6,然后我发现运行时代码有问题。

代码语言:javascript
复制
IMP swizzledImplementation = imp_implementationWithBlock(^BOOL(NSObject *obj, ...) { 
   va_list arguments;
   va_start(arguments, obj);
   id argument = va_arg(arguments, id);
   va_end(arguments);
};

当我尝试使用va_arg在obj之后获得第一个参数时,应用程序就会遇到EXC_BAD_ACCESS。但是代码在iOS模拟器上和ios 10/9/8上的一些设备上都是正常的(在一些IOS10.2设备上也是崩溃的)。

va_list有什么变化吗?还是imp_implementationWithBlock?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-25 10:30:36

我想我找到问题了,https://forums.developer.apple.com/thread/38470

在64位ARM varargs例程上使用与标准例程不同的调用约定,因此使用varargs块实现非varargs方法是不可行的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45876326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档