Как создать категорию в Xcode 6 или выше?
Я хочу создать категорию на UIColor
в своем приложении с помощью Xcode 6. Но дело в том, что в Xcode 6 нет шаблона файла Objective-C.
Есть ли возможность создать категорию в Xcode 6?
Ответы
Ответ 1
Они не забыли. Они просто перенесли его, не сказав никому.
-
Нажмите File
→ New
→ File
-
Выберите 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]()
- Введите имя категории, выберите Тип файла: Категория, а затем выберите базовый класс.
![enter image description here]()
- Заполните поток, чтобы создать категорию.
Ответ 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 {
}
Готово. пользоваться кодировкой