Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iOS中使用UIImageJPEG表示时,内存从未下降_Ios_Swift_Base64_Uiimagejpegrepresentation - Fatal编程技术网

在iOS中使用UIImageJPEG表示时,内存从未下降

在iOS中使用UIImageJPEG表示时,内存从未下降,ios,swift,base64,uiimagejpegrepresentation,Ios,Swift,Base64,Uiimagejpegrepresentation,我正在构建一个框架,在B64中返回一个字符串图像 这是我的行号 我正在使用uiimagejpegresentation缩小图像,然后使其成为B64 imageb64Min = UIImageJPEGRepresentation(image!, 0)!.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0)) 但每次我在应用程序流中使用这一行时,内存都不会下降 达到应用程序的内存限制并中断应用程序 你知道为

我正在构建一个框架,在B64中返回一个字符串图像

这是我的行号

我正在使用
uiimagejpegresentation
缩小图像,然后使其成为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)

    }
func arregolimagenescondni(arrImagenes:NSArray,tipoDocumento:tipoDocumento,codigoDNI:bazzrscan.eCodigo,dni:String)
{
NSLog(“Arreglo de Imagenes:%@”,arrImagenes.description)
//设ecodigo=codigoDNI as!Int
var文件名:Array=Array();
var-imagesMin:Array=Array();
//对于var指数=0;指数
如果查看
uiimagejpegresentation(image!,0)
返回的数据对象的
长度,我怀疑它不会那么大。原始的
图像
引用是否被释放(因为这将占用比数据多得多的内存)?如果您查看分配,这里没有释放哪些对象?@diego显示代码流,我怀疑您只是保留了对B64映像的引用,而从未释放它们。内存泄漏的配置文件!您好@Lawicko,这是我的代码流,添加到原始版本post@DiegoPalomares对于您执行的每个图像
imagesMin.append(imageb64Min!)
,这就是为什么它会保留所有图像直到此方法结束。如果您的问题是图像在
arregolomagenescondni
方法之外持续存在,那么您需要显示整个上下文。