2

B64で文字列画像を返すフレームワークを構築しています

これは私の回線コードです

UIImageJPEGRepresentation画像を縮小してからB64にするために使用しています

imageb64Min = UIImageJPEGRepresentation(image!, 0)!.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))

しかし、アプリケーションフローでこの行を使用するたびに、メモリがアプリケーションの制限メモリに達してアプリが壊れることはありません

メモリーレポート

なぜこれを行うのですか?

編集:これは私のコードフローです

    func arregloImagenesConDNI(arrImagenes: NSArray, tipoDocumento: TipoDocumento, codigoDNI: BAZQRScan.eCodigo, dni: String)
    {
        NSLog("Arreglo de Imagenes: %@", arrImagenes.description)
//        let ecodigo = codigoDNI as! Int
        var fileNames: Array = Array <String>();
        var imagesMin: Array = Array <String>();
        //for var index = 0; index < arrImagenes.count; index += 1
        var imageb64:String?
        var imageb64Min:String?
        for index in 0 ..< arrImagenes.count {

            let image:UIImage? = (arrImagenes[index] as? UIImage)

            imageb64 = ABANKUtil.encodeToBase64String(image)
//            [UIImageJPEGRepresentation(image, 0.6) base64EncodedStringWithOptions:0];
//            let imageb64:String = UIImageJPEGRepresentation(image!, 0)!.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
            let identifier:String = NSProcessInfo.processInfo().globallyUniqueString

            let keys: Array = Array(arrayLiteral: "name", "resource")

            let dataToSave:NSDictionary = NSDictionary(objects: [identifier, imageb64!], forKeys: keys);

            //            [UIImageJPEGRepresentation(image, 0.6) base64EncodedStringWithOptions:0];

            imageb64Min = UIImageJPEGRepresentation(image!, 0)!.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))

            // Not really temp files
            let sessionPath:String = String(format: "%@%@", ABANKUtil.getDocsPath(), identifier)

            NSLog("Create file at path: %@", sessionPath);

            dataToSave.writeToFile(sessionPath, atomically: true)

            fileNames.append(identifier)
            imagesMin.append(imageb64Min!)
        }

        let jsonNames:NSMutableString = "["


        let jsonImages:NSMutableString = "[";
        // for var index = 0; index < arrImagenes.count; index += 1
        for index in 0 ..< arrImagenes.count {

            if index == 0{
                jsonNames.appendFormat("\"%@\"", fileNames[index])
                jsonImages.appendFormat("\"%@\"", imagesMin[index])
            }
            else {
                jsonNames.appendFormat(",\"%@\"", fileNames[index])
                jsonImages.appendFormat(",\"%@\"", imagesMin[index])
            }
        }

        jsonNames.appendString("]")  
        jsonImages.appendString("]")

        print("JsonImages: \(jsonImages)")

        print("JsonNames: \(jsonNames)")

        let respuesta : String = "{\"codigo\": 0, \"mensaje\": \"Se capturaron las fotos\",\"arrArchBase64\": \(jsonImages) ,\"arrNomArchBase64\": \(jsonNames) ,\"DNI\": \"\(dni)\" ,\"codigoDNI\": \"\(codigoDNI)\"}"
        dispatch_async(dispatch_get_main_queue()) {

            print("Send response  digi")
            self.webview?.send(respuesta, callback: self.callback!, scope: self.module!)
        }
        imageb64 = nil
        imageb64Min = nil
        self.dismissViewControllerAnimated(true, completion: nil)

    }
4

0 に答える 0