如何在Xcode 6或更高版本中创建类别?

我想在我的应用程序中使用Xcode 6在UIColor上创建一个类别。但问题是,在Xcode 6中没有Objective-C分类文件模板。

在Xcode 6中有创建类别的选项吗?

84384 次浏览

在Xcode 6 beta(暂时)中没有预定义的模板来创建分类,他们可能会在以后添加这个选项。作为一种工作,你可以创建一个名为UIImage+Additions(ClassName+CategoryName)的Cocoa Touch Class(它不合适,我知道,但没有其他方式),并覆盖它的接口和实现之类的东西

用户界面图像+ Additions.h

#import <UIKit/UIKit.h>


@interface UIImage(Additions)


+(void)testMethod;


@end

用户界面图像+ Additions.m

#import "UIImage+Additions.h"


@implementation UIImage (Additions)


+(void)testMethod
{


}


@end
< p > 编辑 < br > 这个答案是在Xcode 6 beta中找到创建类别的方法之前写的。检查unmircea的答案,以了解创建类别

的正确方法

Xcode6-Beta5更新

界面现在已经改变,可以直接从新建>文件窗口添加一个类别。

看到unmircea的回答


我自己也很惊讶,我猜是因为Swift他们忘记了关于好的老Objective-C。

你有两个选择:

  1. 创建一个具有类别名称的Objective-C类,例如UIView+Powerups,然后手动更改接口以匹配类别中的接口。请注意,类别接口和实现的代码段仍在工作,所以这非常简单:键入@interface-category@implementation-category

  2. 从Xcode 5导入!使用该命令:

    cp -r /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File\ Templates/Cocoa\ Touch/Objective-C\ category.xctemplate /Applications/Xcode6-Beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File\ Templates/Source/
    

    关闭并重新打开Xcode 6,你会在新文件的向导中找到“Objective-C Category”

你可以从旧版本的Xcode中复制你想要的模板,我为此做了一个shell脚本:https://github.com/cDigger/AddMissingTemplates

他们没有忘记。他们没告诉任何人就把它搬走了。

  1. 单击“File -> New -> File

  2. 在“iOS”或“Mac OS”中分别选择“Sources”下的“Objective-C file”,单击“下一步”

  3. 现在在File Type:下选择CategoryProtocolExtension

注:在File Name:下,无论你在这里输入什么,都将是CategoryProtocolExtension名称。

创建CategoryBaseClass + CategoryName.m / . h:

  1. 文件→新建→文件…或使用⌘N
  2. 选择objective - c文件

enter image description here

  1. 输入类别名称,选择文件类型:,然后选择基类。

enter image description here

  1. 完成流以创建类别。

扩展Unmircea精彩的回答 re:如何创建自定义类别来实现自定义UIColor调色板,你可以创建一个类别。

一旦你创建了你的类别(在这个例子中,它是一个名为 UIColorColorPalette类别),你将有一个头文件和一个实现文件。

用户界面颜色+ ColorPalette.h

#import <UIKit/UIKit.h>


@interface UIColor (ColorPalette)


// Your custom colors


+ (UIColor *) customRedButtonColor;
+ (UIColor *) customGreenButtonColor;


@end

用户界面颜色+ ColorPalette.m

#import "UIColor+ColorPalette.h"


@implementation UIColor (ColorPalette)


// Button Colors


+ (UIColor *) customRedButtonColor {
return [UIColor colorWithRed:178.0/255.0 green:25.0/255.0 blue:0.0/255.0 alpha:1.0];
}


+ (UIColor *) customGreenButtonColor {
return [UIColor colorWithRed:20.0/255.0 green:158.0/255.0 blue:96.0/255.0 alpha:1.0];
}

要使用自定义调色板,只需将头文件导入到你想实现自定义颜色的类中:

#import "UIColor+ColorPalette.h"

并将该颜色称为标准颜色,如redColorgreenColorblueColor

这里有一个稍微深入一点的讨论链接创建自定义调色板。

另外,这里是帮助您选择自定义颜色值的工具

下面是一个视觉演示:

creating a category file

你可以创建“扩展”文件,如NSString+Helper:

1: File → New → File... or use ⌘N.


2: Name NSString+Helper (For example)


3: create the file


4: Remove the code from file


5: add


extension NSString {




}

完成了。享受编码