Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MonoTouch-访问Obj-C常量_C#_Objective C_Xamarin.ios_Constants - Fatal编程技术网

C# MonoTouch-访问Obj-C常量

C# MonoTouch-访问Obj-C常量,c#,objective-c,xamarin.ios,constants,C#,Objective C,Xamarin.ios,Constants,很多时候,我会阅读Obj-C代码,并需要在其中一个Obj-C头文件中显示其常量的值 对于通知,我可以在MonoTouch中找到它们,例如UIApplication.DidEnterBackgroundNotification 有没有标准的方法来获取这些值?由于一个奇怪的原因,我需要查找UINavigationControllerHideShowBarDuration。是一个CGFloat,它以单触方式映射到.NET系统。Single(float在C#中) 您应该能够使用MonoTouch.Obj

很多时候,我会阅读Obj-C代码,并需要在其中一个Obj-C头文件中显示其常量的值

对于通知,我可以在MonoTouch中找到它们,例如
UIApplication.DidEnterBackgroundNotification

有没有标准的方法来获取这些值?由于一个奇怪的原因,我需要查找
UINavigationControllerHideShowBarDuration

是一个
CGFloat
,它以单触方式映射到.NET
系统。Single
float
在C#中)

您应该能够使用
MonoTouch.ObjCRuntime.Dlfcn.GetFloat
方法在运行时检索常量(它可能在不同版本之间更改,并且不应像C#
const
那样嵌入)。例如

IntPtr handle = Dlfcn.dlopen (Constants.UIKitLibrary, 0);
return Dlfcn.GetFloat (handle, "UINavigationControllerHideShowBarDuration");

我试试看。
handle
是否需要在try-finally块中关闭?(a)在这种情况下,关闭不应该是问题,因为库已加载到内存中。(b)
MonoTouch.Constants
是公共的-在运行时了解MonoTouch的版本也非常方便:-)