Articles of fermetures

Comment puis-je accéder aux variables qui se trouvent à l'intérieur des fermetures dans Swift?

Je suis nouveau à Swift et j'essaye d'get le résultat de cette fonction. Je ne sais pas comment accéder aux variables qui sont dans la fermeture qui est passée à la fonction sendAsynchronousRequest depuis l'extérieur de la fermeture. J'ai lu le chapitre sur les fermetures dans le guide Apple Swift et je n'ai pas trouvé […]

Swift Cast AnyObject à bloquer

J'utilise donc le SDK Salesforce et construit des en-têtes de pontage pour l'set du SDK. Ils fournissent une syntaxe de bloc qui n'a pas été traduite dans le code le plus utilisable. Par exemple, func sendRESTRequest(request: SFRestRequest!, failBlock: SFRestFailBlock!, completeBlock: AnyObject!) Le bloc complet est AnyObject !. J'étais capable de contourner cela avec var block […]

Comment utiliser indexesOfObjectsPassingTest: dans Swift

La déclaration de indexesOfObjectsPassingTest: ressemble à ceci dans Swift, func indexesOfObjectsPassingTest(predicate: ((AnyObject!, Int, CMutablePointer<ObjCBool>) -> Bool)!) -> NSIndexSet! J'ai essayé toutes sortes de permutations pour que cela fonctionne, mais je suis perplexe, particulièrement avec la façon dont vous gérez cette pièce, CMutablePointer<ObjCBool>) -> Bool)! . J'ai trouvé cela assez confus, quand j'ai commencé à apprendre […]

comment utiliser block / closure dans swift

Dans l'une de mes applications, j'ai utilisé un bloc pour appeler le webservice et get une réponse. Maintenant, je veux écrire cette application rapidement, mais j'ai de la difficulté à utiliser des blocs / fermeture dans Swift. Voici mon code C objective que je veux migrer dans swift: – // appelant une méthode de class […]

La fermeture anonyme ne peut pas être utilisée dans une fermeture qui a des arguments explicites

Est-ce que smb peut expliquer quel est le problème, comment dois-je modifier mon code? J'ai besoin de filterr les CKRecord returnnés depuis CloudKit . override func tableView(tableView: UITableView, moveRowAtIndexPath sourceIndexPath: NSIndexPath, toIndexPath destinationIndexPath: NSIndexPath) { let defaultContainer = CKContainer.defaultContainer() let publicDatabase = defaultContainer.publicCloudDatabase let myfunc2 = myfunc(names, { (records: [CKRecord], error: NSError) in if error […]

Pourquoi les déclarations de fermeture d'Apple manquent des labels d'argument

En lisant l' UIKit , la plupart du time je vois des fermetures (comme un paramètre de fonction) avec des labels d'arguments manquantes comme ceci: func fooClosure(fooClosure: (Bool) -> Swift.Void) Dans certains cas, je peux deviner ce que cela représente, dans d'autres je ne peux pas. Exemple: Jetez un coup d'œil à l'une des UIActivityViewController […]

Appel du bloc typedef de l'objective-C de swift

J'essaie d'appeler une méthode de Swift. La méthode est dans un singleton écrit en objective-C le bloc dans le file d'en-tête: typedef void(^VPersonResultBlock)(Person *person, NSError *error); – (void)askForMe:(VPersonResultBlock)block; et voici la mise en œuvre de cette méthode. – (void)askForMe:(VPersonResultBlock)block { if (_me) block(_me,nil); else { [Person getMeWithBlock:^(PFObject *person, NSError *error) { if (!error) { _me […]

Comment définir le tableau des fermetures dans Swift?

Je veux définir comme ceci: public var reloadFRCsNeedToPerformWhenFail = [()->()]() mais j'ai une erreur

La fermeture rapide se bloque lorsqu'elle est appelée bloc Objective-C

Dans mon projet, j'ai le code Objective-C et le code Swift. J'ai certains objects qui ont des propriétés contenant des blocs pour nettoyer certaines configurations UITableView. L'utiliser fonctionne en Objective-C, mais se bloque lors de l'utilisation de Swift. J'ai réduit le problème à être aussi minimal que possible, tout en restant reproductible. // in Objective-C […]

Se referencer correctement dans dispatch_async

Comment puis-je correctement referencer le moi dans une fermeture rapide? dispatch_async(dispatch_get_main_queue()) { self.popViewControllerAnimated(true) } J'ai l'erreur: Cannot convert the expression's type 'Void' to type 'UIViewController!" Au hasard j'ai essayé: dispatch_async(dispatch_get_main_queue()) { () self.popViewControllerAnimated(true) } et ça a marché. Je ne sais pas ce que le supplément () fait! Quelqu'un veut-il expliquer? Merci!