如何在C++中创建Cocoa对象

How to create Cocoa objects in C++?

本文关键字:创建 Cocoa 对象 C++      更新时间:2023-10-16

是否可能以及如何从C++代码中创建NSString等类的对象?

您有3个选项:

1) 如果您主要使用C++编写,并且希望与预期使用可可字符串和集合的API进行通信,那么Core Foundation是一个C(因此也是C++)API,用于创建Foundation的许多类并与之交互。许多以NS为前缀的可可类都有一个以CF为前缀的等价类,并且可以互换使用。

2) 如果您正在将c++代码与objective-c代码集成,那么您可以选择将接口类编译为objective-c++,这允许您将两者混合在同一源文件中。所以做vector.push_back( [NSString stringWithFormat:@"string"] ) 这样的事情是有效的

3) 通过包含<objc/runtime.h>,可以访问(几乎足够)整个objective-c语言作为c运行库。实际上,我想不出一个好的理由来使用这个而不是其他两个,但如果有一个好理由你不能,那可能值得记住。