2013-01-09 3 views
4

iOS 용 Unity 3D로 게임을 개발합니다. 최근에 내 지점 코드를 다른 지점과 병합하고 Unity 편집기로 실행했습니다. 잘 작동한다. 하지만 iPad에서 응용 프로그램을 실행하면 "/private/var/mobile/Applications//.app/Data/Managed/mscorlib.dll '(128)"에서 유형 2의 트램폴린으로 실행되지 않습니다. "라는 메시지와 충돌합니다. 인터페이스가 많이 사용되면 예외가 발생한다는 것을 알게되었습니다 (Ran out of trampolines of type 2). 실제로 우리 프로젝트에는 너무 많은 인터페이스가 포함되어 있으며 각 인터페이스에는 여러 가지 방법이 있습니다. 해결책은 - aot "nimt-trampolines = 512"와 같은 옵션을 입력하여 trampolines의 수를 늘리는 것으로 나타났습니다. 아무도 나에게 '512'라는 숫자가 인터페이스의 수 (아마도 메소드의 수 등)에 따라 어떻게 달라지는 지 설명 할 수 있습니까? 감사!유형 2의 트램폴린에서 벗어남

답변

3

숫자를 계산할 방법이 없으며, 앱에서 실제로 사용하는 인터페이스에 따라 다릅니다.

다음은 더 자세한 설명입니다. http://monotouch.2284126.n4.nabble.com/Understanding-the-impact-of-trampolines-td4495086.html

+0

제네릭 인터페이스에만 적합합니까? – ghost3D

+0

@ ghost3D : 일반 유형의 비 제네릭 인터페이스에서도 발생할 수 있다고 생각합니다. –

+0

List 또는 Dictionary 를 많이 사용하는 경우 (ISomeInterface는 많은 인터페이스 집합의 사용자 임) 나는 trampolines 유형 2를 다 쓸 것입니까? 또는 generic이 아닌 인터페이스를 구현할 때 발생할 수 있지만 public class SomeType : ISomeInterface {...}와 같이 generic입니다. – ghost3D