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

Yal*_*rao 316 objective-c categories ios xcode6

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

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

uno*_*nom 742

他们没有忘记.他们只是移动它而不告诉任何人.

  1. 单击File- > New- >File

  2. 分别Objective-C fileSourcesin iOS或下选择,Mac OS然后单击Next

  3. 现在下File Type:选择使用Category,ProtocolExtension

PS.在File Name:您输入的任何内容下Category,将是Protocol,或Extension名称.

  • 这太令人困惑了. (13认同)
  • 嘿,XCode 6给出的'Objective-C File`的描述是"一个空的Objective-C文件.",而不是我的描述,它是"旧的,根本不是空的,Objective-C文件之一"你已经习惯了",这让我很好! (8认同)
  • 他们只是在Objective-C下添加Swift和隐藏所有东西,或者我认为他们做到了.我个人不明白为什么添加Swift,一旦你了解它,Objective-C就是如此美丽和富有表现力的语言......它是C语言之上的对象... Perrrfect (6认同)

Zor*_*ayr 76

要创建CategoryBaseClass + CategoryName.m/.h:

  1. 文件→新建→文件...或使用⌘N.
  2. 选择Objective-C文件.

在此输入图像描述

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

在此输入图像描述

  1. 完成流程以创建类别.


rob*_*off 35

这是一个视觉演示:

创建一个类别文件


mok*_*gio 19

Xcode6-Beta5更新

界面现在已更改,可以直接从"新建">"文件"窗口添加"类别".

请参阅unmircea的回答.


我很惊讶自己,我想因为斯威夫特他们了好老的Objective-C.

您有两种选择:

  1. 创建一个带有类别名称的Objective-C类,例如UIView+Powerups,然后手动更改接口以匹配类别.请注意,类别接口和实现的代码段仍然有效,因此非常简单:type @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/
    
    Run Code Online (Sandbox Code Playgroud)

    关闭并重新打开Xcode 6,您将在向导中找到新文件的"Objective-C Category".

  • 仅供参考:如果你是后来的测试版,只需将Xcode-beta.app改为Xcode6-betaX.app,其中X是测试号. (2认同)

Ani*_*ese 12

在Xcode 6 beta中没有预定义的模板来创建类别(暂时),他们可能会在以后添加此选项.作为一个解决方法你可以创建一个Cocoa Touch Class(它不是我知道,但没有其他方式)命名UIImage+Additions(ClassName + CategoryName)并覆盖其接口和实现一些像

的UIImage + Additions.h

#import <UIKit/UIKit.h>

@interface UIImage(Additions)

+(void)testMethod;

@end 
Run Code Online (Sandbox Code Playgroud)

的UIImage + Additions.m

#import "UIImage+Additions.h"

@implementation UIImage (Additions)

+(void)testMethod
{

}

@end
Run Code Online (Sandbox Code Playgroud)

编辑
这个答案是在找到一种在Xcode 6 beta中创建类别的方法之前编写的.检查unmircea的答案,了解正确的创建类别的方法


Adr*_*ian 6

扩展unmircea的梦幻般的答案:如何创建自定义类别来实现自定义UIColor调色板,您可以创建一个类别.

一旦你创建你的类别(在这个例子中,它是一个ColorPalette UIColor),你就会有一个标题和一个实现文件.

的UIColor + ColorPalette.h

#import <UIKit/UIKit.h>

@interface UIColor (ColorPalette)

// Your custom colors

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

@end
Run Code Online (Sandbox Code Playgroud)

的UIColor + 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];
}
Run Code Online (Sandbox Code Playgroud)

要使用自定义调色板,只需将标题导入要实现自定义颜色的类:

#import "UIColor+ColorPalette.h"
Run Code Online (Sandbox Code Playgroud)

并调用颜色你将一个标准色样redColor,greenColorblueColor.

这是一个关于创建自定义调色板的更深入讨论链接.

此外,这是一个帮助您选择自定义颜色值的工具