Articles of generics

cómo extender Swift Dictionary de donde K: String y V: String

Estaba pensando en la siguiente syntax: extension Dictionary where Key:String,Value:String{ func addIfNew(key:String,value:String){ print("new item added: \(key) with value: \(value)") } } Por ejemplo: la function registraría cualquier nuevo dato agregado.

Compruebe si una matriz contiene todos los elementos de otra en Swift

Quiero escribir una extensión para la matriz para comprobar si una matriz contiene todos los elementos de otra matriz, en mi caso de uso son los objects de cadena, pero sigo get: Cannot convert value of type 'T.Generator.Element' to expected argument type '@noescape _ throws -> Bool' en la línea self.contains(item) el error en el […]

Swift: crea una matriz mutable con campos vacíos

Quiero crear una matriz en Swift que sea de tipo UIImageView pero que inicialmente tenga algunos campos vacíos ( nil ) que actúen como marcadores de position. ¿Es eso posible? Fue fácil de crear en Objective-C, como: [self.pageViews addObject:[NSNull null]] En Swift defino la matriz de esta manera: var pageViews:Array<UIImageView> = []; override func viewDidLoad() […]

Función de anulación Swift en extensión

Si tengo una class: class Spaceship<FuelType> { function prepareForLiftoff() throws { //Start the countdown! } } Originalmente supuse que podría anular prepareForLiftoff sin subclasss agregando una extensión: extension Spaceship where FuelType: CollectionType { func prepareForLiftoff() throws {} } Sin embargo, este código no comstack, el error dice invalid networkingeclaration de la function, lo que tiene […]

Crash en desenvolvimiento nula opcional

Hice un nuevo operador que asocia un valor a un objective solo si el valor no es nulo, de lo contrario no hace nada. Básicamente es un azúcar sintética para if let foo = foo { faa = foo } : infix operator =? {} func =?<T>(inout lhs: T, rhs: T?) { if let rhs […]

Swift Generic class as delegate

Encontré un problema al usar una class genérica rápidamente como delegado. por ejemplo, intenté usar un NSFetchedResultsDelegate genérico definido como: class FetchedTableController<T:NSManagedObject> : NSFetchedResultsControllerDelegate Dentro de la class, instale un NSFetchedResultsController y establezca el delegado en 'self'. Pero por alguna razón los methods delegates nunca fueron llamados. Cuando eliminé la parte genérica de la class, […]

La variable en la class genérica no se puede representar en el objective c

Tratando de crear un ViewControlelr genérico que toma un tipo de model y maneja la pagination, etc. Obteniendo el siguiente error. ¿Hay una solución para esto? La variable en la class genérica no se puede representar en Objective-C class BasePaginatingViewController<T: BaseModel>: UIViewController { @IBOutlet var tableView: UITableView! }

Cómo declarar el tipo genérico en Xcode 7 para bloques

Hice una testing simple para el soporte de tipo genérico en Xcode 7 como sigue: @interface MTBaseListViewController <T> : UIViewController – (void )requestWithBlock1:(void (^)(T data ))block; – (void )requestWithBlock2:(void (^)(MTListPagingModel<T> *data ))block; @end; La compilation de la interfaz sin problema. Luego en la class quién lo usa @interface MTTestViewController : MTBaseListViewController <MTTestModel *> @end @implementation […]

Implementación genérica de delegates en Swift

Dada la class Calss<A: Type1, B: Type2> ¿sería posible crear una propiedad de delegado (protocolo) dentro de la class que utilizara un tipo genérico de la class? p.ej protocol CalssDelegate{ func decorate(first: A, second: B) -> Void } En otras palabras, ¿cómo lograría security de tipo al crear un protocolo de delegado de class genérico?

Devolución nula para el tipo genérico

Tengo el siguiente código: class Function<T> { var ptr: () throws -> T init<Func>(block: Func, args: AnyObject…) { self.ptr = {() throws -> T in let result: AnyObject? = nil if T.self == Void.self { return Void() as! T } return result //Error Here.. Cannot as! cast it either.. Cannot unsafeBitCast it either.. } } […]