iOS在Xcode6中怎么创建OC category文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS在Xcode6中怎么创建OC category文件相关的知识,希望对你有一定的参考价值。

首先打开Xcode6然后点击新建文件之后,点击下一步,我们就可以选择创建category文件了 参考技术A

  Xcode6删除了一些模版,其中就包括category模版。

  解决方法两种如下:

    直接用常见的Cocoa Touch Class模版建立,名字起个UIView+XXX(名字自定),然后在.h和.m文件里面的样式改成category的那种;这样做不够优雅,逼格太低,简直不能忍,所以请看第二种。

    把模版加进去就好啦;

    a. 模版路径:

    PROJECT_TEMPLATES_PATH="/Applications/Xcode6.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/iOS/Application"
    FILE_TEMPLATES_PATH="/Applications/Xcode6.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File Templates/Source"

    b. 模版下载见附件,上面两个路径都要有附件里面的模版。

    又能快乐地玩耍了~~



  参考链接:https://github.com/NSFish/AddMissingTemplates


本回答被提问者和网友采纳

iOS - 静态类库 打包 C,C++文件及和OC混编

最近接收了个C写的SDK,遇到不少问题。

iOS 静态类库 编译 C,C++

我们都知道,OC 原生支持C, 在 创建的 OC类的 .m 里面,可以直接编写C的代码;

同样 Xcode 也支持 OC ,C++的混编,此时,我们通常把OC创建的 .m 文件,手动修改为 .mm 文件以支持 oc c++的混编

基于上面的特性,我们在打包静态类时,可以编译C,OC,C++ 以及三者混合的代码;

因为大多数夸平台的算法库代码都是C或是C++写的,我们利用Xcode编译成静态类库,可以非常安全的提供给别人使用

如下示例:

一:静态库打包 C 代码

1. Xcode 创建一个 静态类库项目,就是Cocoa Touch Static Library;

2. 创建好项目之后,File new,C file, 创建一个 A.c 文件;

   在 A.c 里面,写一个测试代码,假如 hello() 方法,是咱们的核心代码,不想让别人知道,只想给外界提供一个 方法名;hello()

void hello(void)
{
    printf("hello world!");  
}

  这时,我们可以再接着 创建一个 Header File ,命名为 A.h, 在该文件里面,写上  

void hello(void);

 上面 .c 文件的 方法名,即可;然后在 静态类库的选项里面,,把 .c 添加到 编译里面,把 .h 添加到 输出里面;

 这样,别人在拿到打包的 .a 之后,再配置头文件,,即可使用 hello() 方法;而不用 担心会暴露 hello()的内部实现;

 注意:在使用该静态库的时候,不要用 .mm , 用 .m ;因为此编译的是C方法,OC 原生支持C;

二:静态类库打包 C++ 代码

1. Xcode 创建一个 静态类库项目,就是Cocoa Touch Static Library;

2. New File 创建一个 C++ Class, 此时项目里面,会生成名为 A.cpp 和 A.h ;

   可以看到 以后 C++ 代码,方法的声明 放到 A.h 里面,,方法的实现 放到  A.cpp 里面,实现即可;

   在给别人打包提供时,同样把 cpp 放到编译里面,把.h 放到 输出里面,即可;

   如 我们在 A.h 里面同样放上 一个 c的 测试 hello(); 方法声明

void hello(void);

  在 A.cpp 里面,写上方法的实现

void hello(void)
{
    printf("hello world");
}

  打包编译,在使用的时候,我们就要用 .mm 了,而不能用 .m了,,

  虽然这两种方式写的同样的是 C的方法,但是意义不一样了;上面编译的是纯C,而下面的,虽然写的是c代码,但是编译的是C++;

 所以在调用此包时,要用 OC,C++混纺,即 .mm 文件;

 

三:总结注意

1. 如果编译纯C,.c文件, 用 .m 即是 OC,C混编;

2. 如果编译C++,.cpp文件,用 .mm 即是 OC C++混编;

3. .cpp的文件里面,可以调用写的 .c 文件,用 .mm 即 OC,C,C++混编;

以上是关于iOS在Xcode6中怎么创建OC category文件的主要内容,如果未能解决你的问题,请参考以下文章

iOS在Xcode6中怎么创建OC category文件

如何在swift中使用cocoapods导入的第三方oc库

iOS-Runtime在开发中的使用及相关面试题

iOS开发(OC)——支付宝支付

oc之封装「可输入值」的UIStepper

iOS-OC和Swift相互混合开发(OC&Swift混编)