Как создать категорию в Xcode 6 или выше?

Я хочу создать категорию на UIColor в своем приложении с помощью Xcode 6. Но дело в том, что в Xcode 6 нет шаблона файла Objective-C.

Есть ли возможность создать категорию в Xcode 6?

Ответ 1

Они не забыли. Они просто перенесли его, не сказав никому.

  • Нажмите FileNewFile

  • Выберите Objective-C file под Sources в iOS или Mac OS соответственно и нажмите "Далее"

  • Теперь под File Type: выберите либо Category, Protocol, либо Extension

PS. В File Name: все, что вы вводите здесь, будет либо Category, Protocol, либо Extension Name.

Ответ 2

Чтобы создать CategoryBaseClass + CategoryName.m/.h:

  • Файл → Создать → Файл... или используйте ⌘N.
  • Выберите Objective-C Файл.

enter image description here

  1. Введите имя категории, выберите Тип файла: Категория, а затем выберите базовый класс.

enter image description here

  1. Заполните поток, чтобы создать категорию.

Ответ 3

Здесь визуальная демонстрация:

создание файла категории

Ответ 4

Обновление Xcode6-Beta5

Теперь интерфейс изменился, и можно добавить категорию непосредственно из окна "Создать" > "Файл".

См. ответ unmircea.


Я был удивлен сам, и я думаю, из-за Swift они забыли о добром старом Objective-C.

У вас есть два варианта:

  • Создайте класс Objective-C с именем категории, пример UIView+Powerups, затем вручную измените интерфейс, чтобы он соответствовал одному из категорий. Обратите внимание, что фрагмент для интерфейса и реализации категории по-прежнему работает, поэтому вам будет проще: введите @interface-category и @implementation-category.

  • Импортируйте его из 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 Категория" в мастере для нового файла.

Ответ 5

Нет предопределенного шаблона для создания категории в бета-версии Xcode 6 (на данный момент), они могут добавить эту опцию позже. Как работа вокруг вы можете создать Cocoa Touch Class (его не правильно я знаю, но не иначе) с именем UIImage+Additions (ClassName + CategoryName) и переопределить его интерфейс и реализацию, что-то вроде

UIImage + Additions.h

#import <UIKit/UIKit.h>

@interface UIImage(Additions)

+(void)testMethod;

@end 

UIImage + Additions.m

#import "UIImage+Additions.h"

@implementation UIImage (Additions)

+(void)testMethod
{

}

@end

Edit
Этот ответ был написан до поиска способа создания категории в бета-версии Xcode 6. Проверьте ответ unmircea на правильный способ создания категории

Ответ 6

Расширение unmircea фантастический ответ re: как создать пользовательскую категорию для реализации пользовательской палитры UIColor, вы можете создать категорию.

Как только вы создали свою категорию (в этом примере это категория, называемая ColorPalette класса UIColor), у вас будет заголовок и файл реализации.

UIColor + ColorPalette.h

#import <UIKit/UIKit.h>

@interface UIColor (ColorPalette)

// Your custom colors

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

@end

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];
}

Чтобы использовать пользовательскую цветовую палитру, просто импортируйте заголовок в класс, где вы хотите реализовать свои собственные цвета:

#import "UIColor+ColorPalette.h"

и вызовите цвет, как стандартный цвет, например redColor, greenColor или blueColor.

Здесь ссылка на несколько более углубленное обсуждение создания пользовательской палитры.

Кроме того, здесь инструмент, который поможет вам выбрать пользовательские значения цвета

Ответ 7

Вы можете просто скопировать нужные вам шаблоны из старой версии Xcode, я сделал оболочку script для этого: https://github.com/cDigger/AddMissingTemplates

Ответ 8

Вы можете создать файл расширения как 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 {


}

Готово. пользоваться кодировкой