Je voudrais parcourir la hiérarchie de controller de vue dans Swift et find une class particulière. Voici le code: extension UIViewController{ func traverseAndFindClass<T : UIViewController>() -> UIViewController?{ var parentController = self.parentViewController as? T? ^ | | // Error: Could not find a user-defined conversion from type 'UIViewController?' to type 'UIViewController' while(parentController != nil){ parentController = […]
J'essaye d'append une méthode de type (aka statique) à une class générique dans Swift. Voici le code. class StateArchive<T> { class func emptyAllArchives() { // do something } } // the comstackr emits an error: "Argument for generic parameter 'T' could not be inferred" StateArchive.emptyAllArchives() Je peux get le code ci-dessus pour comstackr en fournissant […]
J'essaye de créer un protocole qui permet à n'importe quel object d'être instancié en utilisant JSON NSData. J'essaye de créer une extension au dictionary de [Ssortingng: Ssortingng] qui se conforme à ce protocole. Malheureusement, pour une raison quelconque, le code suivant ne fonctionne pas: public protocol InitializableWithData { init(data: NSData?) throws } extension Dictionary: InitializableWithData […]
Je travaille sur un morceau de code qui utilise des generics. Ceci est un exemple de ce que j'essaie de réaliser: var ssortingngs: Array<Array<Ssortingng>> = [["1", "2", "3"], ["4", "5", "6"]] var array: Array<Array<AnyObject>> = ssortingngs Mais le compilateur dit "'Ssortingng' n'est pas identique à 'AnyObject'". Je ne sais pas pourquoi le compilateur se plaint […]
Pour les énumérations avec des valeurs associées, Swift ne fournit pas l'opérateur d'égalité. J'ai donc mis en place un pour pouvoir comparer deux enums: enum ExampleEnum{ case Case1 case Case2(Int) case Case3(Ssortingng) … } func ==(lhs: ExampleEnum, rhs: ExampleEnum) -> Bool { switch(lhs, rhs){ case (.Case1, .Case1): return true case let (.Case2(l), .Case2(r)): return l […]
Il ne semble pas que je puisse lancer un type générique à un autre? Swift lance DynamicCastClassException. Fondamentalement, voici le problème: // T is defined as T: NSObject let oebj1 = NetworkResponse<User>() let oebj2 = oebj1 as NetworkResponse<NSObject> Voici pourquoi je dois faire ce casting class BaseViewController: UIViewController { // Not allowed to make a […]
J'ai rencontré un problème lors de l'utilisation d'une class générique dans swift en tant que délégué. par exemple j'ai essayé d'utiliser un NSFetchedResultsDelegate générique défini comme: class FetchedTableController<T:NSManagedObject> : NSFetchedResultsControllerDelegate A l'intérieur de la class, je configure un NSFetchedResultsController et définit le délégué sur 'self'. Mais pour une raison quelconque, les methods déléguées n'ont jamais […]
Question connexe: Gestionnaire de complétion générique dans Swift Dans une application Swift, j'écris, je télécharge JSON et je veux le convertir en objects templates. En ce moment, je fais ça comme ça: func convertJSONData<T: Entity>(jsonData: NSData?, jsonKey: JSONKey, _: T.Type) -> [T]? { var entities = [T]() if let data = jsonData { // Left […]
J'ai lutté très dur avec les protocoles Swift et les types associés depuis longtime. J'ai recommencé avec basic pour vraiment comprendre ce qui ne va pas et j'ai suivi cet article de TypeErasure dans Swift Protocols avec Associated Type Requirement de Rob Napier mais je n'ai toujours pas de chance. Trouvez le code ci-dessous // […]
J'ai une List<Hashtable> dans mon application MonoTouch et je dois la conserver dans mes parameters. NSUserDefaults , cependant, ne prend que les choses qui héritent de NSObject . Existe-t-il un moyen simple d'encapsuler ma list dans un object NSObject que je peux stocker dans mes parameters, ou est-ce un moyen rapide générique d'encoder et de […]