回答
假设你是在谈论一个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. 检查javascript中是否存在函数
- 4. 检查表是否存在函数
- 5. 可可 - 有没有办法检查NSURLConnection是否存在缓存?
- 6. 检查是否存在并可在C中执行,使用stat函数
- 7. 是否可以检查持久性是否存在?
- 8. 可可:SBJSON检查字段是否存在
- 9. 调整检查函数参数是否存在成员函数
- 10. Javascript,可以检查HTML中是否存在函数<script>标记?
- 11. 检查数据库是否存在 - 引擎不可知
- 12. Python:检查项目是否存在可变数量的列表
- 13. 可以检查参数是否存在以评估结果
- 14. 如何检查json数组是否可用并存在?
- 15. 检查DB是否可用
- 16. 检查window.onerror是否可用
- 17. 是否可以检查java.lang.NumberFormatException?
- 18. 检查UIAlertView是否可见
- 19. 检查localStorage是否可用
- 20. 检查iAd是否可用
- 21. 检查是否可以检查控制?
- 22. php检查函数是否可用与数组作为源
- 23. Python:如何检查是否设置了可选函数参数
- 24. 检查oracle数据库是否可用
- 25. Word Addin - 如何检查createDocument()函数是否可用?
- 26. 是否可以检查函数的内部语句?
- 27. 如何检查编译器上的函数是否可用?
- 28. 检查驱动器是否可写windows API函数
- 29. 如果函数被调用,是否可以检查?
- 30. 运行jquery函数之前检查Widget是否可用
等待 - 这是一种功能还是方法。这两者非常不同。 –
这是一个C函数(AXIsProcessTrustedWithOptions),它只能在10.9上使用。 – bogdansrc