Chcę utworzyć kategorię UIColorw mojej aplikacji za pomocą Xcode 6. Ale chodzi o to, że w Xcode 6 nie ma szablonu pliku kategorii Objective-C.
Czy jest jakaś opcja utworzenia kategorii w Xcode 6?
@interface UIColor(MyCategory) ... etc
Chcę utworzyć kategorię UIColorw mojej aplikacji za pomocą Xcode 6. Ale chodzi o to, że w Xcode 6 nie ma szablonu pliku kategorii Objective-C.
Czy jest jakaś opcja utworzenia kategorii w Xcode 6?
@interface UIColor(MyCategory) ... etc
Odpowiedzi:
Nie zapomnieli. Po prostu przenieśli go, nie mówiąc o tym nikomu.
Kliknij File-> New->File
Wybierz Objective-C fileponiżej Sourcesw iOSlub Mac OSodpowiednio i kliknij przycisk Dalej
Teraz pod File Type:wybrać jedną Category, ProtocollubExtension
PS. Pod File Name:cokolwiek wpiszesz tutaj będzie albo Category, Protocollub ExtensionNazwa.
Objective-C Fileprzez XCode 6 to „Pusty plik Objective-C”. Zamiast mojego opisu, który byłby „jednym ze starych, wcale nie pustych plików Objective-C, do którego jesteś przyzwyczajony” , co całkiem mnie odrzuciło!
Aktualizacja Xcode6-Beta5
Interfejs się zmienił i możliwe jest dodanie kategorii bezpośrednio z okna Nowy> Plik.
Zobacz odpowiedź Unmircei .
Sam byłem zaskoczony i chyba dzięki Szybkiemu zapomnieli o starym, dobrym Celu-C.
Masz dwie opcje:
Utwórz klasę Objective-C z nazwą kategorii, na przykład UIView+Powerups, a następnie ręcznie zmień interfejs, aby pasował do kategorii. Pamiętaj, że fragment interfejsu kategorii i implementacji nadal działa, więc jest to wyjątkowo łatwe: wpisz @interface-categoryi @implementation-category.
Zaimportuj go z Xcode 5! Użyj tego polecenia:
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/
Zamknij i ponownie otwórz Xcode 6, a w kreatorze nowego pliku znajdziesz „Kategoria celu C”.
W Xcode 6 beta nie ma wstępnie zdefiniowanego szablonu do tworzenia kategorii (na razie), mogą dodać tę opcję później. Aby obejść ten problem , możesz utworzyć Cocoa Touch Class(jego nie wiem, ale nie ma innego sposobu) o nazwie UIImage+Additions(ClassName + CategoryName) i zastąpić jego interfejs i implementację.
#import <UIKit/UIKit.h>
@interface UIImage(Additions)
+(void)testMethod;
@end
#import "UIImage+Additions.h"
@implementation UIImage (Additions)
+(void)testMethod
{
}
@end
Edytuj
Ta odpowiedź została napisana przed znalezieniem sposobu na utworzenie kategorii w Xcode 6 beta. Sprawdź odpowiedź Unmircei na właściwy sposób tworzenia kategorii
Rozszerzając fantastyczną odpowiedź Unmircei na temat: jak utworzyć niestandardową kategorię w celu zaimplementowania niestandardowej UIColorpalety, możesz utworzyć kategorię.
Po utworzeniu swoją kategorię (w tym przykładzie jest to kategoria o nazwie ColorPalettez klasą UIColor ), będziesz mieć nagłówek i plik realizacji.
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];
}
Aby użyć niestandardowej palety kolorów, wystarczy zaimportować nagłówek do klasy, w której chcesz zaimplementować niestandardowe kolory:
#import "UIColor+ColorPalette.h"
i wywołać kolor tak jak standardowy kolor podobny redColor, greenColoralbo blueColor.
Oto link do nieco bardziej dogłębnej dyskusji na temat tworzenia niestandardowej palety.
Dodatkowo, oto narzędzie, które pomoże Ci wybrać niestandardowe wartości kolorów
Możesz po prostu skopiować szablony, które chcesz ze starszej wersji Xcode, stworzyłem do tego skrypt powłoki: https://github.com/cDigger/AddMissingTemplates
Możesz utworzyć plik „rozszerzenia”, taki jak 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 {
}
Gotowy. miłego kodowania