-3

我正在寻找一种方法来了解我可以在 C++ 中使用哪些 Apple API,而不仅仅是 Objective-C。IOS 7。

当我计划我的应用程序功能时,是否有资源或方法可以知道这一点?

我知道我至少需要一些 Objective-C。我可以处理。我现在对 Objective-C 不太满意,但我仍然有应用程序的想法。

4

3 回答 3

2

我现在对 Objective-C 不太满意,但我仍然有应用程序的想法。

Objective-C 是一种非常简单的语言。您可以在几页上指定它添加到纯 C 的所有内容。语法起初看起来很奇怪,但很快就消失了。困难在于它是 C 的超集,如果你习惯了 C++,这对你来说不是问题。

另一方面,iOS API 一点也不简单。他们有很多,他们需要时间来学习。

与学习 API 相比,学习语言很容易。如果您以本机语言使用 API,则学习 API 会更容易。所以我的建议是这样做。或者,可能使用将它们包装在 C++ 类中的 C++ 框架。在 C++ 中使用本机 API(在可能的范围内)不是一个好主意。

于 2013-11-14T22:57:37.933 回答
0

Objective-C 和 C++ 做 OOP 的方式非常非常不同。Objective-C 做的事情更接近于真正的消息发送,而不是直接调用一个函数。这允许一定程度的活力使 C++ 头晕目眩,并且意味着 C++ 对象和 Objective-C 对象在很多方面是不兼容的。

如果您打算尝试使用 C++ 来操作 Cocoa 对象,那么 Objective-C++ 是(是?)尝试用 C++ 做 Objective-C 用 C 做的事情。不过,我还没有听到太多关于它的好消息。

除此之外,您还需要熟悉objc_msgSend(Objective-C 用来实际向对象发送消息的函数)。因为你会经常使用它。

于 2013-11-14T23:03:00.020 回答
0

好吧,尽量保持答案简单。C++ 和 Objective-C 之间没有冲突。您可以将两者用于您的开发目的,甚至可以在同一个项目/类中使用。

不幸的是,Apple 没有在 C++ 中公开任何直接的应用程序级 API,而是为此目的坚持使用 Objective-C。但是,Apple 的基础 API 仍然基于纯 C,因此您可以在 C++ 中创建自己的包装器,以调用这些基础框架来构建您自己的应用程序框架。但这肯定会在开发过程中产生巨大的开销。

我建议您坚持使用基于 Objective-C 的 AppKit/UIKit 进行 UI 和前端开发,而您仍然可以使用纯 C/C++ 来开发您的业务对象。例如,如果您正在开发游戏,您可以创建 C/C++ 类来实现您的处理/渲染逻​​辑,并在 Objective-C 中仅实现屏幕输出逻辑。您可以在 Objective-C 类中安全地使用 C/C++ 类/方法。所以你不必担心互操作性。

于 2013-11-14T23:22:06.177 回答