我想弄清楚如何將NSArray返回到統一的c#。我沒有找到任何東西。用於Unity的iOS插件將NSArray返回到c#
我在.mm上有一個函數,它有一個NSArray返回,但我不知道我返回的是哪種類型,以及如何從Unity中獲取它。
我的NSArray包含NSString。
我想弄清楚如何將NSArray返回到統一的c#。我沒有找到任何東西。用於Unity的iOS插件將NSArray返回到c#
我在.mm上有一個函數,它有一個NSArray返回,但我不知道我返回的是哪種類型,以及如何從Unity中獲取它。
我的NSArray包含NSString。
正如問題的評論部分所述,JSON是實現這一目標的最簡單方法。在您的Objective-C類IOS中。 毫米你需要的東西,如:
extern "C" {
char* GetMyJSONStringIOS() {
MyClass* myInstance = [[MyClass alloc] init] autorelease];
NSString* str = [myInstance convertToJSON];
char* s = cStringCopy([str UTF8String]);
return s;
}
char* cStringCopy(const char* string) {
char* res = (char*)malloc(strlen(string) + 1);
strcpy(res, string);
return res;
}
}
在你的C#類IOSWrapper.cs
[DllImport ("__Internal")]
static extern string GetMyJSONStringIOS();
public static string GetMyJSONString() {
string json;
#if !UNITY_EDITOR && UNITY_IPHONE
json = GetMyJSONStringIOS();
#else
json = "Dont know";
#endif
}
return json;
}
方法cStringCopy
在內部使用從爲const char *複製到char *。
感謝您的幫助@Kay。但我找到了另一種方式。我將我的NSArray轉換爲JSON,並將其作爲const char *返回。在Unity中,我使用Marshal.PtrToStringAnsi()來轉換Intptr的返回值。它工作正常!之後,我可以使用JSON解析來獲取我的值。 – Dyego
@Dyego你應該回答你自己的問題。以便其他人可以使用該方法。你發現的那個人。 –
可能有直接實現此目的的方法,但大多數開發人員似乎通過JSON – Kay
感謝@Kay,我認爲使用JSON返回一個大字符更容易,而不是試圖弄清楚如何在另一個字符中執行此操作方法。 – Dyego
@Kay,你知道如何從c#中的obj-c獲得[const char *]? – Dyego