Articles of genics

Swift Generics no instanciará generics cuando use inheritance

Tengo classs Alpha y Berry : class Alpha { } class Berry : Alpha { } Tengo una function que usa inheritance dentro de su genérico: func myFunc<T : Alpha>(v:T) -> T { return T() } Llamo a myFunc así: myFunc(Berry()) En mi proyecto, el object que se devuelve es del tipo Alpha y no […]

Swift, creando un UIViewController genérico

Estoy tratando de crear una class como esta: class MyClass<T:UIView>: UIViewController{ override init() { super.init(nibName: nil, bundle: nil); } requinetworking init(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func loadView() { self.view = T(); println("loadView") } override func viewDidLoad() { super.viewDidLoad(); println("viewDidLoad") } } Cuando quiero usar mi class así: self.navigationController?.pushViewController(MyClass<UIView>(), animated: […]

Swift Generic UIView subclass con problema de protocolo

He extendido UIView para conformar el protocolo UIGestureRecognizerDelegate El código siguiente comstack let label = UILabel() let recognizer = UITapGestureRecognizer(target: label.self, action: Selector("tapGestureHandler:")) recognizer.delegate = label.self label.addGestureRecognizer(recognizer) Ahora estoy tratando de crear una subclass genérica para crear diferentes subclasss UIView class MyView<T:UIView> { init() { (T.self as T.Type).init(frame: CGRectZero) } func addGestureToView() { let recognizer […]

La observación de KVO no funciona con los generics Swift

Si observo una propiedad usando KVO, si el observador es una class genérica, entonces recibo el siguiente error: An -observeValueForKeyPath: ofObject: change: context: el post se recibió pero no se manejó. La siguiente configuration demuestra el problema sucintamente. Definir algunas classs simples: var context = "SomeContextString" class Publisher : NSObject { dynamic var observeMeString:String = […]

¿Cómo puedo averiguar el tipo de generics Objective-C?

Xcode 7 contiene una variante de Objective-C, en la que puede definir una sugerencia de tipo para properties y valores de retorno NSArray (homogéneos), definidos como NSArray<UIImage*> . Me gustaría utilizar esta function para reescribir mi class JSON-deserializer (que necesita este tipo de sugerencias de tipo; anteriormente he resuelto esto agregando una -(Class)jsonHintForKey:(NSString*)key a mis […]

Utilice una class genérica como una vista personalizada en Interface Builder

Tengo una subclass personalizada de UIButton: import UIKit @IBDesignable class MyButton: UIButton { var array : [String]? } Es IBDesignable y lo he configurado como la class personalizada para uno de los botones de mi storyboard. Me gustaría hacerlo genérico para que la matriz no tenga que ser uno de los objects String. Entonces probé […]

Cómo usar el protocolo genérico como tipo de variable

Digamos que tengo un protocolo: public protocol Printable { typealias T func Print(val:T) } Y aquí está la implementación class Printer<T> : Printable { func Print(val: T) { println(val) } } Mi expectativa era que debía poder utilizar la variable Printable para imprimir valores como este: let p:Printable = Printer<Int>() p.Print(67) El comstackdor se queja […]