【问题标题】:Lua iOS Objective-CLua iOS Objective-C
【发布时间】:2026-01-14 02:15:01
【问题描述】:

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

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

我在该行收到以下错误:

Cast of 'lua_integer' (aka'long') to 'KillScript' is disallowed with ARC.

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

谢谢!!

【问题讨论】:

    标签: ios objective-c lua


    【解决方案1】:

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

    你可以做一些不安全的投射舞蹈来保持 ARC 的启用,但我怀疑你会遇到其他问题。

    如果是独立项目,请关闭 ARC 并尝试编译。您可能会遇到其他问题 - 弃用等... - 但至少您可能会有相对健全的内存管理行为。

    【讨论】:

    • 在这种情况下,我该怎么做不安全的选角舞?
    • @JohnAdams 我不记得了,即兴表演。我建议不要走这条路;如果是示例代码,请关闭 ARC 并查看它是否有效。如果是这样,那么请弄清楚如何打开 ARC。听起来像旧代码。