2012-01-09 66 views
1

很多時候,我會讀的OBJ-C代碼和需要的價值存在於對象 - C頭文件之一的常量之一。MonoTouch的 - 訪問對象 - 常量

的通知,我已經能夠找到他們的MonoTouch如UIApplication.DidEnterBackgroundNotification

有沒有一個標準的方法來獲得這樣的值?由於奇怪的原因,我需要查找UINavigationControllerHideShowBarDuration

回答

2

UINavigationControllerHideShowBarDuration是一個CGFloat,其中MonoTouch映射到.NET的System.Single(在C#中的float)。

你應該能夠使用MonoTouch.ObjCRuntime.Dlfcn.GetFloat方法來檢索不斷(它可以版本之間改變,不應該被嵌入像一個C#const)在運行時的值。例如。

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

我來試試。 'handle'是否需要在try-finally塊中關閉? – jonathanpeppers 2012-01-09 22:21:23

+0

(a)在這種情況下,關閉應該不是問題,因爲庫已經加載到內存中。 (b)'MonoTouch.Constants'是公開的 - 在運行時知道MonoTouch的版本也很方便:-) – poupou 2012-01-09 22:34:08