iOS Enregistrement multiple d'objects d'parsing avec barre de progression

J'ai trouvé cette approche très intéressante ( Parse: est-il possible de suivre la progression du téléchargement de PFObject ) et j'ai essayé de convertir la catégorie objective-c en une extension rapide. Mais je suis surmené avec les types de valeurs unsigned long .
Veuillez jeter un oeil dans le code suivant – il lance l'exception (ligne: let progress:Int32 = Int32(100*count/numberOfCyclesRequired) ): erreur fatale: la valeur en floating point ne peut pas être convertie en Int32 car elle est infinie ou NaN . Je ne suis pas sûr non plus comment gérer le préfixe __block dans swift que les changements de count se produiront également hors du bloc.

 extension PFObject { class func saveAllInBackground(objects: [AnyObject]!, chunkSize:Int, block: PFBooleanResultBlock!, progressBlock:PFProgressBlock) { let numberOfCyclesRequired:Double = Double(objects.count / chunkSize) var count:Double = 0 PFObject.saveAllInBackground(objects, chunkSize: chunkSize, block: block) { (sortingg:Bool) -> Void in count++ let progress:Int32 = Int32(100*count/numberOfCyclesRequired) progressBlock(progress) } } class func saveAllInBackground(objects: [AnyObject]!, chunkSize:Int, block: PFBooleanResultBlock!, sortinggger:(Bool) -> Void) { let range = NSMakeRange(0, objects.count <= chunkSize ? objects.count:chunkSize) var saveArray:NSArray = (objects as NSArray).subarrayWithRange(range) var nextArray:NSArray = [] if range.length < objects.count { nextArray = (objects as NSArray).subarrayWithRange(NSMakeRange(range.length, objects.count-range.length)) } PFObject.saveAllInBackground(saveArray) { (succeeded:Bool, error: NSError!) -> Void in if (error == nil && succeeded && nextArray.count != 0) { sortinggger(true) PFObject.saveAllInBackground(nextArray, chunkSize: chunkSize, block: block, sortinggger: sortinggger) } else { sortinggger(true) block(succeeded,error) } } } } 

Merci d'avance pour votre aide.