草庐IT

objective-C

全部标签

java - JNI : Overhead of holding Java object references within the native code?

我正在研究通过JNI将JRE集成到C++应用程序中。在C++应用程序中持有对Java对象的大量引用(JNI术语中的全局引用)的开销是多少?使用这种方法我应该注意什么问题(除了显而易见的问题,例如手动取消分配引用)吗? 最佳答案 (a)开销与从Java执行时一样。您正在阻止对象被垃圾收集。(b)在JNI调用中持有对象引用对JVM来说可能是致命的,除非你做得正确。您需要仔细阅读JNI规范中有关全局和本地引用的部分。您还需要考虑使用弱引用而不是全局引用。 关于java-JNI:Overhead

c++ - 在 Mac OS X 上安装 OpenCV 3 作为框架

我想使用OpenCV在OSXElCapitan上制作一个应用程序。我决定使用最新版本,即2015年6月4日发布的3.0.0版。我使用brew安装了2.4.x版,但由于第3版现在有一个构建框架的osx构建脚本,我想使用它方法。从OpenCV.org下载版本3后,我在opencv-3.0.0目录中打开一个终端窗口并执行build_framework.py脚本,如下所示:平台/osx/build_framework.pyosx(osx参数告诉脚本创建一个名为osx的目录以在那里输出框架)一切顺利构建,因此我将osx目录中构建的框架添加到我的项目中。令我惊讶的是,我的项目无法正常构建。首先是以

c++ - 将首选项加载到 Mac 内核扩展

您好!我正在为OSX开发内核扩展驱动程序。这是一个简单的键盘过滤器。我有通过首选项Pane设置的首选项,以了解此过滤器的行为方式。我需要从此首选项面板中获取首选项并将它们加载到内核扩展中。我用谷歌搜索了一下,没有找到任何关于如何做到这一点的信息。有没有办法将plist加载到首选项Pane中?也许进入OSDictionary或其他东西?或者,将首选项从我的首选项面板获取到我的kext的最佳方式是什么?谢谢! 最佳答案 thisproject的源代码会帮助你。它使用sysctl在prefPane和kext之间进行通信。

c++ - 将 C++ 类与 Objective C 类混合

我使用的是iphoneSDK,主要使用C++进行编码,同时使用obj-c中的部分SDK。在需要obj-c类的情况下是否可以指定C++类?例如:1)将委托(delegate)设置为obj-c对象时。我无法使C++类派生自委托(delegate)协议(protocol),因此这个原因和可能的其他原因阻止我使我的C++类成为各种obj-c对象的委托(delegate)。作为解决方案,我所做的是创建一个obj-c适配器类,其中包含指向C++类的ptr并用作委托(delegate)(在调用时通知C++类)。每次我需要将委托(delegate)通知发送给C++类时,都感觉很麻烦。2)设置选择器时这

iphone - iOS 媒体选择器不显示

我目前正在iPhone上开发一个音频应用程序。它基于苹果的SpeakHere示例代码和来自iPod库的用户定义的输入文件。这是按钮引发的事件:-(IBAction)btn_PickSong_Clicked:(id)sender{[selfshowMediaPicker];//codeimportingtracksfromlibrary}在showMediaPicker方法中://Yuptheprogramdoesreachthismethodbutthepickerdoesnotshowup-(void)showMediaPicker{MPMediaPickerController*m

c++ - Microsoft VS C++ 编译器是否存在 Bug Initialize a reference from a temporary object

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Bindingtemporarytoalvaluereference使用VS2008C++编译器编译代码无编译错误。classA{};intmain(){A&a_ref=A();return0;}我相信C++标准,包括C++2003和即将到来的C++0x,都不允许它。而且我还遇到了gcc编译器的编译时错误。所以我想知道的是,这是VS编译器允许从临时对象初始化引用的已知错误。还是VS编译器的功能扩展?如果是,临时对象的生命周期是多少?

c++ - 如何让 boost::object_pool 线程安全?

在询问Isthereafasterheapallocation/deallocationmechanismavailablethanboost::object_pool?后,我得到反馈说这个对象池不是线程安全的。所以我写了一个ObjectFactory包装boost::object_pool并添加互斥锁:#includeusingstd::shared_ptr;#include#includetemplateclassObjectFactory{private:structSharedDeleter{ObjectFactory*m_pFact;SharedDeleter(ObjectF

python - SWIG、C++ 和 Python : C++ temporary objects deleted too soon

我遇到了SWIG过早删除临时C++对象的问题。Python测试脚本的示例输出:--------------------------------------------------------------------------------Worksasexpected:b0=Buffer(0,0,0,)b1=Buffer(1,1,1,)b0=Buffer(0,0,0,1,1,1,)y=Buffer(0,0,0,1,1,1,)b1=Buffer(1,1,1,)repr(b0)=Buffer(id=0,vectorat0x020bf450,dataat0x020aeb30,size=6)r

c++ - 对类型的非常量左值引用 - 使用 Class 类型的参数时 Objective-C++ 包装器中的错误

我有两个用Objective-C++编写的包装器类,用于它们等效的C++类。我们称它们为OABCClass和OXYZCallbackInterface。现在我在C++(ABCClass)中有一个方法,其中一个参数是一个接口(interface)-XYZCallbackInterface。例如:std::stringmethodWithArguments(std::stringreq,CommonNamespace::XYZCallbackInterface&callback);在我的Objective-C++包装器类中,即OABCClass我对上述C++方法的方法实现如下所示:-(NS

c# - 有没有支持C++和C#的ORM(Object Relational Mapper)框架

我正在寻找一个允许我编写C#用户界面和C++服务的ORM。两者都需要从同一个数据库访问数据。理想情况下,我希望从数据库模式生成C#和C++类,然后我可以根据这些模式进行编程。数据库可能是SQLServer,但尚未确定。注意:我在Windows环境中执行此操作,但由于我不想深入的原因,我实际上无法使用COM,因此COM解决方案不是一个选项。这类似于这个问题:ORM(objectrelationalmanager)solutionwithmultipleprogramminglanguagesupport但是,这个问题没有得到很好的回答,我无法为此筹集赏金。 最