在iPhoneOS中寻找marg_setValue的修复方法。

我正在尝试编译最初为 Cocoa 编写的库。一切都很好,直到它查找 marg_setValue() 函数。它说在以下代码中 char 前有一个语法错误:

marg_setValue(argumentList,argumentOffset,char,(char)lua_toboolean(state,luaArgument));

(它在谈论第三个参数,而不是 (char) )

我正在尝试将 LuaObjectiveCBridge 移植到 iPhone 上。它有两个选择,使用 Runtime 或 Foundation。我发现 Foundation 存在一些问题,因此我正在尝试 Runtime。但编译器不太合作。

原文链接 https://stackoverflow.com/questions/2823460

点赞
stackoverflow用户25646
stackoverflow用户25646

现代 Objective-C ABI / API 可用于 Cocoa Touch。它缺少 32 位桌面运行时的一些传统功能(即,那些极其脆弱的功能)。

marg_setValue() 和其他相关函数是那个传统运行时的一部分,不受 Objective-C 2.0 支持。它一直以来都有一个问题,你不会失去很多东西。

真正的问题是:你想做什么?

2010-05-12 23:46:16
stackoverflow用户121278
stackoverflow用户121278

检查是否可以摒弃marg_XXX宏:

-它们已被弃用,不可靠。 -marg_list应与现代运行时中缺少的objc_msgSendv一起使用。

我建议使用NSInvocation。它非常简单易用,对于桥接而言也足够强大。请参考此条目

2010-05-13 19:19:04