Cómo enlazar Obj-C #define UMLOG_ERROR @ "" con MonoTouch

Soy nuevo en MonoTouch. Actualmente estoy tratando de vincular una biblioteca de Objective-C en MonoTouch, hasta ahora he hecho gran parte del trabajo, sin embargo, no sé cómo vincular el siguiente código:

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 } 

Y también el siguiente código:

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

No puede vincular esto, ya que no es realmente el código Objective-C, sino algunas directivas C preprocesador .

En tales casos, debe volver a escribir esto en C #. Esto parece ser una traducción de códigos de error en la representación de cadenas. Dependiendo de su aplicación, puede usar cadenas C # (en lugar de 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>"); } } 

El otro define debe convertirse en C # estático, por ejemplo

 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] "); 

Nuevamente, puede usar C # string (y convertirlos en const también).