我真的对这个主题感到困惑。我在 Xcode 上使用 LLVM 4.1 编译器,当我在 ARC 关闭的 32 位或 x64 或 x64-x86 模式下编译这样的简单基本代码时,一切正常,但如果我使用自动引用计数模式编译;我收到BAD_ACCESS
错误。
这是一个示例代码:
-(void) doNothing{
__asm__ volatile(
"pushl %ebp;"
"movl %esp , %ebp ;"
"movl %eax , -4(%ebp);"
"movl %ebp, %esp;"
"popl %ebp;"
"leave;"
"ret " // retl in x86
);
}
我试图找出错误的来源我发现推送/弹出是唯一在 ARC 模式下工作的部分!
这太令人沮丧了,因为我过去在内联汇编中编写了一个巨大的代码,现在我必须将它与 ARC 连接到一个模块中。现在如果我不能解决它,我可能需要修改所有模块以便在没有 ARC 的情况下工作!
任何人都可以帮助我吗?