回答
假设你是在谈论一个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