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

307

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

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

  • 0
    как ты делал это до Xcode 6?
  • 0
    Просто введите его в исходный файл: @interface UIColor(MyCategory) ... т. Д.
Показать ещё 2 комментария
Теги:
category
xcode6

8 ответов

689
Лучший ответ

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

  • Нажмите FileNewFile

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

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

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

  • 0
    Это правильный ответ! СПАСИБО!
  • 11
    Это так запутанно.
Показать ещё 11 комментариев
77

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

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

Изображение 5534

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

Изображение 5535

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

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

Изображение 5536

19

Обновление 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 Категория" в мастере для нового файла.

  • 2
    К вашему сведению: если вы участвуете в более поздней бета-версии, просто измените Xcode-beta.app в строке на Xcode6-betaX.app, где X - номер беты.
  • 1
    Неправильно! Проверьте ответ unmircea ниже для правильного ответа - это не ушло, это только переместилось ..
11

Нет предопределенного шаблона для создания категории в бета-версии 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 на правильный способ создания категории

  • 0
    Apple забыла добавить категорию Objective-c, расширение класса Objective-c, шаблоны протоколов Objective-c ....
  • 0
    Я создал отчет об ошибке # 17627118, если вы хотите скопировать его.
Показать ещё 2 комментария
5

Расширение 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.

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

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

  • 1
    Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить здесь основные части ответа и предоставить ссылку для справки.
  • 1
    @ Джаспер Я обновил свой ответ, чтобы отразить ваш вклад.
3

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

  • 0
    спасибо работает
  • 0
    отличный! Оно работает.
Показать ещё 1 комментарий
0

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


}

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню