Lua iOS Objective-C

我正在尝试运行一些之前的代码,在重新编译 Lua 以获得适当的架构后,我在以下行中遇到了一些问题。

KillScript* script = (KillScript*)lua_tointeger(L, -1);

我在这一行得到了以下错误:

'lua_integer' (aka'long') 转换为 'KillScript' 的强制转换在 ARC 下是不允许的。

有谁知道为什么这个逻辑不起作用吗?

谢谢!!

点赞
用户25646
用户25646

ARC -- 自动引用计数 -- 不允许你在非对象引用类型和对象引用类型之间进行切换。lua_integer 是一个 C 标量。

你可以做一些不安全的强制类型转换来保持 ARC 启用,但我怀疑你会遇到其他问题。

如果这是一个独立的项目,请关闭 ARC 并尝试编译。你可能会遇到其他问题 -- 废弃等等 -- 但至少你可能会有相对稳定的内存管理行为。

2018-01-31 23:08:59