IOS问题汇总:2015-1-9 【iOS开发】.h,.m,.mm,.cpp等区别

【iOS开发】.h,.m,.mm,.cpp等区别

文件区别:

.h :头文件。头文件包含类,类型,函数和常数的声明。 
.m :源代码文件。这是典型的源代码文件扩展名,可以包含Objective-C和C代码。 
.mm :源代码文件。带有这种扩展名的源代码文件,除了可以包含Objective-C和C代码以外还可以包含C++代码。仅在你的Objective-C代码中确实需要使用C++类或者特性的时候才用这种扩展名

.cpp:只能编译C++

当你需要在源代码中包含头文件的时候,你可以使用标准的#include编译选项,但是Objective-C提供了更好的方法。#import选项和#include选项完全相同,只是它可以确保相同的文件只会被包含一次。Objective-C的例子和文档都倾向于使用#import。

.m 和.mm 的区别是告诉gcc 在编译时要加的一些参数。当然.mm还可以命名成.m,但在编译时要手动加参数(麻烦)

常用场景:

如果你的OC代码里面有包含C++的引用或代码,将此类更改为.mm即可;

例子:

ERROR:./zxing/cpp/core/src/zxing/common/Counted.h:21:10: ‘iostream‘ file not found

在引用zxing的时候#import用到了iostream,但是它是/iphoneOS6.1/user/include/c++下面的类,故需要把类名改为.mm即可

注意#import或#include的位置要在.mm文件里,如果在.h头文件里是没用的

时间: 2024-12-19 00:29:30

IOS问题汇总:2015-1-9 【iOS开发】.h,.m,.mm,.cpp等区别的相关文章

在Visual Studio 2013/2015上使用C#开发Android/IOS安装包和操作步骤

原文:在Visual Studio 2013/2015上使用C#开发Android/IOS安装包和操作步骤 Xamarin 配置手册和离线包下载 http://pan.baidu.com/s/1eQ3qw8a 具体操作: 安装前提条件 1. 安装Visual Studio 2013,安装过程省略,我这里安装的windows10 + vs2013 with update 4. 2. 安装Java SDK,按照Next一步步安装,此处省略,如下图: 3. 安装Android SDK:因为在线安装的访

ios 排序汇总

ios 排序汇总  IOS几种简单有效的数组排序方法 //第一种,利用数组的sortedArrayUsingComparator调用 NSComparator ,obj1和obj2指的数组中的对象 NSComparator cmptr = ^(id obj1, id obj2){  if ([obj1 integerValue] > [obj2 integerValue]) {         return (NSComparisonResult)NSOrderedDescending;    

Cordova - 使用Cordova开发iOS应用实战1(配置、开发第一个应用)

Cordova - 使用Cordova开发iOS应用实战1(配置.开发第一个应用) 现在比较流行使用 html5 开发移动应用,毕竟只要写一套html页面就可以适配各种移动设备,大大节省了跨平台应用的开发时间.而不像以前一样 Android 要写一套程序,iOS 要写一套,甚至 Windows Phone 还要再写一套程序. 虽然使用H5开发的界面很容易适配各种手机设备,但由于系统的差异,如果要访问原生的设备功能(如摄像头.麦克风等)还是有些不便,或者说不是那么统一.这时我们可以借助 Cordo

iOS Simulator功能介绍关于Xamarin IOS开发

iOS Simulator功能介绍关于Xamarin IOS开发 iOS Simulator功能介绍 在图1.38所示的运行效果中,所见到的类似于手机的模型就是iOS Simulator.在没有iPhone或iPad设备时,可以使用iOS Simulator对程序进行检测本文选自Xamarin iOS开发实战. iOS Simulator可以模仿真实的iPhone或iPad等设备的功能各种功能,如表1-3所示. 表1-3  iOS Simulator 在表1-3所示的功能中需要注意,iOS Si

iOS 9学习系列:打通 iOS 9 的通用链接(Universal Links)

在WWDC 2015 上, Apple 为 iOS 9 宣布了一个所谓 通用链接 的深层链接特性, 视频地址为 [无缝链接到您的 App].虽然它不是一个必须实现的功能, 但还是需要引起一些注意. 在网上有太多让人迷惑和错误的信息, 这次 WWDC 本身也没有去描述细节.幸运的是, 在 HOKO 我们在我们的智能链接上添加了这一特性, 所以我们可以无缝的引导用户到 APP 上. 什么是通用链接? 很显然 Apple 正在大力推动 APP 开发者在深层链接上有更好的体验.所有的消息都围绕着深层链接

2015年,移动开发都有哪些热点?

自2007年乔布斯发布第一代iPhone开启移动时代,到现在已经8年了.在过去的几年中,移动互联网以惊人的速度快速发展,移动开发这个从无到有的行业,也一直处于快速的演变当中.回顾过去的一年,Swift语言.Material Design.Win10等等的发布激动人心,HTML5标准的确定也让人对Mobile Web App再次燃起热情,对于开发者来说,这是最好的时代.新的一年里,我们肯定也会迎来更多令人兴奋的变化,移动开发领域将会有哪些值得关注的话题呢?本文就抛砖引玉,为大家盘点一下. 本文将从

【学习ios之路:UI系列】iOS沙盒机制,文件读取,归档与反归档

1.IOS中的沙盒机制 IOS中的沙盒机制是一种安全体系,它规定了应用程序只能在为该应用创建的文件夹内读取文件,不可以访问其他地方的内容.所有的非代码文件都保存在这个地方,比如图片.声音.属性列表和文本文件等. 特点: 1.每个应用程序都在自己的沙盒内 2.不能随意跨越自己的沙盒去访问别的应用程序沙盒的内容 3.应用程序向外请求或接收数据都需要经过权限认证 每个沙盒含有3个文件夹:Documents, Library 和 tmp.Library包含Caches.Preferences目录.如下图

iOS 9的新的改变 iOS SDK Release Notes for iOS 9 说了些改变

iOS 9的新的改变 iOS SDK Release Notes for iOS 9 说了些改变 看了下还算能理解!!!有兴趣可以看看哈!!!不喜勿喷!!后面的对于废除的方法什么有用感觉!!! ios9 iOS SDK更新内容介绍 重点介绍: 这是一个初步的文档的API或技术发展.苹果是提供这一信息来帮助你计划的采用所述技术和编程接口使用品牌产品.此信息可能发生变化,根据这个文档和软件实现应与最后的操作系统软件测试和最终的文档.新版本的文档可以提供未来贝塔的API或技术. 内容: 介绍 iOS

iOS 7 UI 过渡指南 - 支持续 iOS 6(iOS 7 UI Transition Guide - Supporting iOS 6)

iOS 7 UI Transition Guide Preparing for Transition Before You Start Scoping the Project Supporting iOS 6 Updating the UI Appearance and Behavior Bars and Bar Buttons Content Views Controls Temporary Views Supporting iOS 6 If business reasons require