C# 沙马林,麦克·西格夫
我在C# 沙马林,麦克·西格夫,c#,macos,cocoa,xamarin,xamarin.mac,C#,Macos,Cocoa,Xamarin,Xamarin.mac,我在xamarin.mac中遇到了一个模糊的segfault,这是(没有帮助的)stacktrace: at <unknown> <0xffffffff> at (wrapper managed-to-native) MonoMac.AppKit.NSApplication.NSApplicationMain (int,string[]) <0xffffffff> at MonoMac.AppKit.NSApplication.Main (
xamarin.mac
中遇到了一个模糊的segfault,这是(没有帮助的)stacktrace:
at <unknown> <0xffffffff>
at (wrapper managed-to-native) MonoMac.AppKit.NSApplication.NSApplicationMain (int,string[]) <0xffffffff>
at MonoMac.AppKit.NSApplication.Main (string[]) <0x00097>
at gitbookpro.mac.MainClass.Main (string[]) <0x00017>
at (wrapper runtime-invoke) <Module>.runtime_invoke_void_object (object,intptr,intptr,intptr) <0xffffffff>
at
at(包装器管理为本机)MonoMac.AppKit.NSApplication.NSApplicationMain(int,字符串[])
位于MonoMac.AppKit.NSApplication.Main(字符串[])
位于gitbookpro.mac.MainClass.Main(字符串[])
在(包装器运行时调用)。运行时调用无效对象(对象,intptr,intptr,intptr)
在执行大量处理的NSOutlineView
上处理SelectionDidChange
后,会发生崩溃
很难确定到底是什么导致了这次撞车
有什么想法吗?这个错误是由于,
C
对象被错误地垃圾收集而引起的
它们被垃圾收集,因为这些对象被返回到objective-c
code(本机代码),并且由于c
中没有保留引用,垃圾收集器正在删除它们
事情就是这样发生的:
1.创建C#obj
2.将obj返回到本机代码
3.等一下。。。
4.将本机对象转换回C#obj(在事件处理程序等中)
5.访问C#obj