我知道这个问题有点被问到,但我正在寻找的答案从未得到解决。
我知道Xamarin编译成IL,然后变成原生二进制文件,但我有一个更具体的问题,与内存管理方式有关。
我的问题与本机二进制文件中的内存管理有关,在将C#编译为Android时,您可以在.NET和本机Java中处理系统资源的对象,在某些情况下(如位图),你需要清理两者(清理对象的.NET句柄,以及Java本身的本机对象),这是因为Java和C#都是垃圾收集语言。就Swift而言,垃圾收集不是发生的事情,它都是引用计数,因此内存管理不是一个问题,而且除此之外,我的同事构建我们的Xamarin应用程序的iOS端从不有内存问题,而我在Android应用程序中有很多。
由此我得出,在某种程度上,在Xamarin Android与Xamarin iOS中,内存必须以不同的方式处理,但我不确定,因为我不知道iOS应用程序是如何编译的,会回答什么这个问题是知道Xamarin iOS编译的语言,所以我的问题是,Xamarin iOS编译成Objective-C,Swift还是别的什么?我想更好地了解发生了什么,所以我知道如何处理iOS应用程序中的内存。
说完所有这些之后,我们的iOS应用程序完全有可能没有任何内存泄漏,因为我的同事只是比我写作时更了解,我可能只是无能为力并得出错误的结论如果是这种情况,请随时告诉我。
如果我说这个问题很奇怪,请告诉我,我会尝试澄清我的意思。