NSArray를 유니티 C#으로 되 돌리는 방법을 알아 내려고하고 있습니다. 나는 아무것도 찾지 못했다.유니티에 대한 iOS 플러그인이 NSArray를 다시 C로 반환 함 #
반환 할 NSArray가있는 내 .mm 함수가 있지만 반환 할 형식과 Unity에서 가져 오는 방법을 알지 못합니다.
NSArray에 NSString이 포함되어 있습니다.
NSArray를 유니티 C#으로 되 돌리는 방법을 알아 내려고하고 있습니다. 나는 아무것도 찾지 못했다.유니티에 대한 iOS 플러그인이 NSArray를 다시 C로 반환 함 #
반환 할 NSArray가있는 내 .mm 함수가 있지만 반환 할 형식과 Unity에서 가져 오는 방법을 알지 못합니다.
NSArray에 NSString이 포함되어 있습니다.
질문의 댓글 섹션에 설명 된 것처럼 JSON이이를 달성하는 가장 쉬운 방법입니다. Objective-C 클래스에서 IOS. 당신의 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
이 *는 char const를 숯불 * 복사하기 위해 내부적으로 사용되는 방법을
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;
}
}
: mm 당신이 뭔가를해야합니다.
도움을 주셔서 감사합니다. @ 케이. 하지만 다른 방법을 찾았습니다. 내 NSArray JSON 변환 해요 및 const char * 반환하고 있어요. Unity에서, 나는 Marshal.PtrToStringAnsi()를 호출하여 Intptr 반환 값을 변환합니다. 그것은 잘 작동합니다! 그 후 JSON 구문 분석을 사용하여 내 값을 얻을 수 있습니다. – Dyego
@Dyego 자신의 질문에 답해야합니다. 그래서 다른 누군가가 그 방법을 사용할 수 있습니다. 하나 찾았 어. –
직접 구현할 수있는 방법이 있지만 대부분의 개발자가 JSON을 사용하는 것 같습니다. – Kay
감사합니다. 케이, JSON을 사용하여 큰 문자를 반환하는 것이 더 쉽습니다. 방법. – Dyego
@ 케이, C#에서 obj-c로 [const char *]를 얻는 방법을 알고 있습니까? – Dyego