zoukankan      html  css  js  c++  java
  • iOS 开发批量保存图片到相册时丢图片的解决方法

    原文:http://www.99css.com/1425/

    同一个问题(前一次是一年多前,写完就忘了)栽了两次,纪录一下。

    症状

    在循环语句中批量保存图片到相册时在低配置的设备中会有丢失的情况,代码一般是这个样子

    for (int i = 0; i < n; i++) {  
        UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
    }
    

    debug了一下,错误是

    write busy

    原因

    iOS 往系统相册写照片的时候是单线程,一张存完才会存下一张,可能是因为要经过这几个过程:压缩图片、生成缩略图、SQLite保存数据,低配置的机器(比如 iPhone4)有点慢,同时写入照片会有失败的情况,我大 iPhone5 无压力

    解决方法

    知道原因后就好解决了,方法就是一张存成功再存下一张

    先保存成数组

    for (int i = 0; i < n; i++) {  
        UIImage *image = ...;
        [listOfImages addObject:image];
    }
    

    再递归

    -(void) saveNext{
        if (listOfImages.count > 0) {
            UIImage *image = [listOfImages objectAtIndex:0];
            UIImageWriteToSavedPhotosAlbum(image, self, @selector(savedPhotoImage:didFinishSavingWithError:contextInfo:), nil);
        }
        else {
            [self allDone];
        }
    }
    
    -(void) savedPhotoImage:(UIImage*)image didFinishSavingWithError: (NSError *)error contextInfo: (void *)contextInfo {
        if (error) {
            //NSLog(@"%@", error.localizedDescription);
        }
        else {
            [listOfImages removeObjectAtIndex:0];
        }
        [self saveNext];
    }
  • 相关阅读:
    1722 最优乘车 1997年NOI全国竞赛
    5969 [AK]刻录光盘
    tarjan算法讲解
    求有向图的强连通分量个数 之 Kosaraju算法
    信使
    1405 奶牛的旅行
    P1828 香甜的黄油 Sweet Butter
    洛谷P2235 [HNOI2002]Kathy函数
    「BZOJ1010」[HNOI2008] 玩具装箱toy(斜率优化)
    BZOJ 1974 [Sdoi2010] auction 代码拍卖会(数位dp)
  • 原文地址:https://www.cnblogs.com/whqios/p/4777789.html
Copyright © 2011-2022 走看看