回答
假設你是在談論一個C函數,你可以用dlopen
功能做到這一點:
#include <dlfcn.h>
int main() {
void *lib = dlopen("/System/Library/Frameworks/ApplicationServices.framework/ApplicationServices", RTLD_LAZY);
void *function = dlsym(lib, "CGColorGetConstantColor");
// cast the function to the right format
CGColorRef (*dynamic_getConstantColor)(CFStringRef colorName) = function;
NSLog(@"%@", dynamic_getConstantColor(CFSTR("kCGColorBlack")));
dlclose(lib);
}
輸出:
2013-06-20 12:43:13.510 TestProj[1699:303] [ (kCGColorSpaceICCBased; kCGColorSpaceModelMonochrome; Generic Gray Profile)] (0 1)
你需要弄清楚的dylib中的作用不過,首先你要居住。
This will打破了iOS和Mac上的沙盒限制。這是您嘗試解決鏈接器所付出的代價。
如果你處理的Objective-C的方法,也許你可以用選擇做吧.. 所以首先檢查是否選擇可用:
[object respondsToSelector:@selector(osxMavericksFun)]
如果這個測試是正確的嘗試發射的通過選擇器的方法
[object performSelector:@selector(osxMavericksFun)];
如果您想調用c函數,則無法執行此操作。
這個問題是關於函數,而不是方法。 – bogdansrc
那麼,如果可以提供的話,你想打電話到底是什麼? – lukaswelte
有沒有辦法做到這一點..你將需要建立在10.9上使用10.9的功能,實際上,使用dlopen/dlsym你可以做到這一點,如果你想要的10.9 – lukaswelte
你說你不想編譯對10.9,但沒有理由。以防萬一您可以:
如果您將您的目標設置爲10.9,並將您的部署設置爲較低的值,則Xcode將弱鏈接10.9框架。然後您可以通過將其名稱與NULL
進行比較來測試可用的C函數。該片段從this document採取:
extern int MyWeakLinkedFunction() __attribute__((weak_import));
int main()
{
int result = 0;
if (MyWeakLinkedFunction != NULL)
{
result = MyWeakLinkedFunction();
}
return result;
}
(順便說一句:沒有沙箱問題,這種方式)。
你應該做這樣的
if (AXIsProcessTrustedWithOptions != NULL){
NSDictionary *options = @{(__bridge id)kAXTrustedCheckOptionPrompt: @YES};
accessibilityEnabled = AXIsProcessTrustedWithOptions((__bridge CFDictionaryRef)options);
}else{
accessibilityEnabled = AXIsProcessTrusted();
}
此方法apple's documentation Listing 3-2描述。這比Richard J. Ross III所描述的方法簡單得多,你接受的是正確的。
- 1. shell bash,你可以檢查一個函數是否存在
- 2. 如何檢查函數是否存在?
- 3. 檢查列是否存在函數
- 4. 檢查表是否存在函數
- 5. 檢查是否函數存在
- 6. 檢查javascript中是否存在函數
- 7. 可可 - 有沒有辦法檢查NSURLConnection是否存在緩存?
- 8. 是否可以檢查是否在CSV文件中存在串
- 9. 是否可以檢查持久性是否存在?
- 10. 檢查是否存在並可在C中執行,使用stat函數
- 11. 可可:SBJSON檢查字段是否存在
- 12. 調整檢查函數參數是否存在成員函數
- 13. Javascript,可以檢查HTML中是否存在函數<script>標記?
- 14. 如何檢查json數組是否可用並存在?
- 15. 可以檢查參數是否存在以評估結果
- 16. 檢查數據庫是否存在 - 引擎不可知
- 17. Python:檢查項目是否存在可變數量的列表
- 18. 檢查localStorage是否可用
- 19. 檢查iAd是否可用
- 20. 檢查UIAlertView是否可見
- 21. 檢查window.onerror是否可用
- 22. 是否可以檢查java.lang.NumberFormatException?
- 23. 檢查DB是否可用
- 24. 檢查是否可以檢查控制?
- 25. Python:如何檢查是否設置了可選函數參數
- 26. php檢查函數是否可用與數組作爲源
- 27. 檢查oracle數據庫是否可用
- 28. 如何檢查編譯器上的函數是否可用?
- 29. Word Addin - 如何檢查createDocument()函數是否可用?
- 30. 是否可以檢查函數的內部語句?
等待 - 這是一種功能還是方法。這兩者非常不同。 –
這是一個C函數(AXIsProcessTrustedWithOptions),它只能在10.9上使用。 – bogdansrc