`

Objective-C与Objective-C++的混用代码示例

阅读更多

很多已经熟悉C/C++的朋友在初次使用Objective-C作为开发语言时不是很习惯,不过objective-C/C++本身又是几乎完全兼容GNU C/C++的。
这里作为一个代码实例来描述Objective-C与objective-C++如何混合使用。其实这就同C与C++如何混用一样,还是非常容易上手的。
不 过,为了能够更好地看清这一混合优势。项目中使用了objective-C/C++一个非常强大的语法——Category(类别,或范畴)对原有的类 Sample进行扩展,衍生出一个accumulateValue这个成员方法。这个方法的实现放在一个.mm文件中(.m文件表示objective- C源文件,.mm表示objective-C++源文件),并且通过一个模板函数来实现。
这段代码看上去比较复杂,不过这仅仅作为一个样例而已。模板函数的功能是将Sample类的一个对象的value值不断累加。
比如:初始值为1,那么迭代一次就是2;再迭代一次就是4。每次迭代都是自己与自己相加。
在accumulateValue方法的实现中,使用AccumulateValue<sizeof(self.value)>(self);表示在32位系统下迭代4次;在64位系统下迭代8次。

代码下载地址:http://dl.dbank.com/c0pzbnnx7a


转自iOS分享网http://iosshare.cn

分享到:
评论

相关推荐

    [弃用]可以显示手势教程的视图_Objective-C_Objective-C++_下载.zip

    Objective-C++是Objective-C的一个扩展,它允许在Objective-C代码中混用C++,为开发者提供了更多的灵活性,尤其是在处理图形和游戏引擎时。 【标签】为空,意味着没有提供额外的分类信息,但根据标题和描述,我们...

    The Objective-C 2.0 Programming Language

    Objective-C允许直接在代码中混用C代码,这意味着开发者可以在同一项目中利用C语言的高效性能,同时也享受Objective-C的高级功能。这种集成能力对于开发高性能的系统级应用尤为重要。 ### 七、Cocoa与Cocoa Touch...

    Objective-C_快速入门教程

    3. **.mm** - 支持C++代码的文件,允许在Objective-C项目中混用C++代码。 Objective-C引入了`#import`指令,这是一种改进的包含文件的方式,它可以避免重复包含同一个头文件,类似于PHP中的`require_once`。 #### ...

    【Objective-C.Fundamentals】[PDF+源代码] [iPhone/iPad/iOS]

    3. **消息传递**:Objective-C的对象通过发送消息来执行操作,这与C++或Java中的方法调用类似。消息传递使用`-`或`+`符号,后面跟随方法名和参数列表。`-`表示实例方法,`+`表示类方法。 4. **协议(Protocols)**...

    简单讲解Objective-C的基本特性及其内存管理方式..pdf

    在OC代码中,可以混用C语言和C++代码。OC语言的文件拓展名是“.m”,与C语言的“.c”和C++的“.mm”不同。OC语言可以用来开发Mac OS X和iOS平台的应用程序。 语法预览 Objective-C的语法与C语言类似,但有一些...

    简单讲解Objective-C的基本特性及其内存管理方式

    Objective-C在C语言的基础上添加了面向对象的特性,它完全兼容C语言,允许开发者在代码中混用C或C++。Objective-C的源文件扩展名为`.m`,如果需要兼容C++,则扩展名为`.mm`。语言的核心在于它的消息传递机制和类接口...

    Iphone基础面试题资料.pdf

    8. C与Objective-C混用:Objective-C是C的超集,可以直接使用C语言的语法和库。C++与Objective-C的混用则需要使用`@compatibility_alias`或者桥接头文件(Objective-C++,文件扩展名为.mm)。 9. 目标-动作(Target...

    docobject-c面试题.doc

    Objective-C与C可以无缝混用,Objective-C实际上是在C基础上扩展的语言,可以直接包含C代码,也可以在Objective-C代码中调用C函数。 ### 18. 目标-动作机制 目标-动作(Target-Action)是Objective-C中处理用户...

    iPhone应用开发从入门到精通的源代码

    - **C/C++混用**:讨论如何在Objective-C中混合使用C和C++代码,以及这种方式的优缺点。 #### 三、开发工具的使用 - **Xcode**: - **安装Xcode**:提供了两种安装途径:从操作系统光盘安装和从苹果官网下载安装...

    swift-jazzyOC和Swift文档生成工具

    然而,由于Objective-C的特性,其注释风格与Swift有所不同,因此在混用Swift和Objective-C的项目中,可能需要结合使用不同的工具。 在压缩包文件"realm-jazzy-c528d47"中,我们可以看到这可能是一个特定版本的Swift...

    iPhone应用开发从入门到精通代码

    C语言与C++混用975.4 本章小结985.5 本章练习98第6章 iPhone程序的设计模式996.1 MVC模式996.2 对象共享模式1016.3 目标和动作模式1046.4 通告模式1056.5 归档模式1076.6 子视图模式1086.7 委托模式1106.8...

    IOS 开发总结

    - 代码混编:介绍如何在Objective-C项目中混用C++代码或其他语言代码。 - 字符串换行:在Objective-C中,如果一行代码过长,可以使用反斜杠(\)来实现代码的换行。 - 不要调用[super release]:这是在内存管理中一...

    金属渲染器:玩金属

    Objective-C 是苹果的原生应用开发语言,而 Objective-C++ 允许在 Objective-C 代码中混用 C++ 代码,这在需要利用 C++ 库或类时非常有用。在 Metal 开发中,Objective-C++ 通常用于封装 Metal API 和 MSL 代码。 5...

    plpatchmaster:用于 Objective-C 的实验性基于块的 swizzling API

    在生产软件中混用很少,如果有的话,是一个特别好的主意。 PLPatchMaster 是在 MIT 许可下发布的。 基本用途 使用块来调整 -[UIWindow sendEvent:]: [UIWindow pl_patchInstanceSelector: @selector(sendEvent:)...

    移动应用跨平台技术PPT课件.pptx

    例如,j2objc将Java转换为Objective-C,myappconverter将Objective-C转换为Java,而Haxe则可以转换为多种语言,包括C++、Java和C#。然而,这种方法的缺点在于转换后的代码可能难以阅读和调试,且工具的成熟度不一。 ...

Global site tag (gtag.js) - Google Analytics