我之前从未尝试过这样做,因此我们将非常感谢所有评论或建议。大局是我试图在iOS应用程序中使用C ++文件。
整个项目以C ++文件开头。不是Objective-C(或Swift)。 C ++代码自己工作。
我能够使用cmake -G Xcode ..
要正确运行此构建,我需要通过adjust"在启动时传递的参数"在编辑方案下,它运行得很好。
现在出现了问题。
1)我如何链接方案,以便在iOS应用程序上,我可以启动此C ++构建?
2)有没有办法以编程方式发送"在启动时传递的参数"?
3)现在,C ++ build使用cout
在main.cpp文件中显示结果。如何生成输出以便将其发送到Objective-C文件?
任何小的或大的反馈或建议都将非常感激。谢谢。
答案 0 :(得分:1)
坏消息:Objective C不理解c ++头文件。
好消息:但Objective-C ++确实
假设您希望将整个项目保持为Objective-C,那么诀窍就是围绕具有objective-c接口的c ++对象提供objective-c ++包装。
示例:
wrapper.h
@interface MyWrapper : NSObject
- (void) something;
@end
wrapper.mm
#import "wrapper.h"
#include "cpp-class.hpp"
@implementation WyWrapper
{
// private c++ data here
std::unique_ptr<cpp_object> myobj_;
// objects here unfortunately need to be default-constructible
}
- (id) init
{
// because they are initialised here
myobj_ = std::make_unique<cpp_object>();
}
- (void) something
{
myobj_->do_something();
}
@end