gpt4 book ai didi

c# - 如何使用 MonoTouch 绑定(bind) Obj-C#define UMLOG_ERROR @"[UM Error] "

转载 作者:可可西里 更新时间:2023-11-01 05:37:18 25 4
gpt4 key购买 nike

我是 MonoTouch 的新手。我目前正在尝试将 Objective-C 库绑定(bind)到 MonoTouch 中,到目前为止我已经完成了大部分工作,但是,我不知道如何绑定(bind)以下代码:

static inline NSString* UmRet_lookup(UmRet c) {
#define URLOOK(a) case a: return @#a;
switch (c) {
URLOOK(UMRET_SUCCESS )
URLOOK(UMRET_NO_READER )
URLOOK(UMRET_SDK_BUSY )
URLOOK(UMRET_ALREADY_CONNECTED)
URLOOK(UMRET_NOT_CONNECTED )
URLOOK(UMRET_LOW_VOLUME )
URLOOK(UMRET_UF_INVALID_STR )
URLOOK(UMRET_UF_NO_FILE )
URLOOK(UMRET_UF_INVALID_FILE )
default: return @"<unknown code>";
}
#undef URLOOK
}

还有下一段代码:

#define UMLOG_ERROR    @"[UM Error] "
#define UMLOG_WARNING @"[UM Warning] "
#define UMLOG_INFO @"[UM Info] "

最佳答案

您不能绑定(bind)它,因为它不是真正 Objective-C 代码,而是一些 C pre 处理器指令。

在这种情况下,您需要将其重写为 C#。这看起来像是将错误代码转换为字符串表示形式。根据您的应用,您可能希望使用 C# 字符串(而不是 NSString)。

static public NSString UmRet_lookup (UmRet c)
{
switch (c) {
case UMRET_SUCCESS : return new NSString ("UMRET_SUCCESS");
case UMRET_NO_READER : return new NSString ("UMRET_NO_READER");
case UMRET_SDK_BUSY : return new NSString ("UMRET_SDK_BUSY");
case UMRET_ALREADY_CONNECTED : return new NSString ("UMRET_ALREADY_CONNECTED");
case UMRET_NOT_CONNECTED : return new NSString ("UMRET_NOT_CONNECTED");
case UMRET_LOW_VOLUME : return new NSString ("UMRET_LOW_VOLUME");
case UMRET_UF_INVALID_STR : return new NSString ("UMRET_UF_INVALID_STR");
case UMRET_UF_NO_FILE : return new NSString ("UMRET_UF_NO_FILE");
case UMRET_UF_INVALID_FILE : return new NSString ("UMRET_UF_INVALID_FILE");
default: return new NSString ("<unknown code>");
}
}

其他定义应转换为 C# 静态,例如

static public NSString UMLOG_ERROR = new NSString ("[UM Error] ");
static public NSString UMLOG_WARNING = new NSString ("[UM Warning] ");
static public NSString UMLOG_INFO = new NSString ("[UM Info] ");

同样,您可能想使用 C# string(并将它们也转换为 const)。

关于c# - 如何使用 MonoTouch 绑定(bind) Obj-C#define UMLOG_ERROR @"[UM Error] ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14057319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com