【问题标题】:I am unable to save and retrieve image in iOS我无法在 iOS 中保存和检索图像
【发布时间】:2015-12-12 22:39:20
【问题描述】:

我无法在 iOS 中保存和检索图像。我通过这段代码得到了 nil 图像:

-(NSString *)saveImageDataWithImage:(UIImage *)image
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory,NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *photoName = [NSString stringWithFormat:@"%ld.png",
                           (long)[[NSDate date] timeIntervalSince1970]];
    NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:photoName];
    NSFileManager *fileManager = [NSFileManager defaultManager];

    if (![fileManager fileExistsAtPath:getImagePath])
    {
        NSData *data1 = [NSData dataWithData:UIImagePNGRepresentation(image)];
        [data1 writeToFile:getImagePath atomically:YES];
    }
    return photoName;
}
-(UIImage *)GetImageFromPath:(NSString *)ImageName
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory,NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:ImageName];
    UIImage *thumbNail = [[UIImage alloc] initWithContentsOfFile:getImagePath];
    return thumbNail;
}

为什么我得到零图像?

请帮帮我。

【问题讨论】:

  • “我不能”是什么意思?你写了一些代码——它失败了吗?你能错误消息吗?也请。重新格式化代码以使 q 更易于阅读。
  • 我已经编辑了您的问题以修复格式,但您需要包含更多细节以允许其他人帮助您。查看“How do I ask a good question?”获取一些提示。
  • 对不起,我是新来的。其实我是在问这个代码好吗?我无法从图像路径 UIImage *thumbNail = [[UIImage alloc] initWithContentsOfFile:getImagePath]; 获取图像,得到零图像。我不知道我在哪里缺乏。
  • 尝试调试它。使用断点并查看documentsDirectory 和getImagePath 之类的值是什么。查看应用程序的沙箱,看看您要读取的位置是否真的有文件。
  • documentDirectory :"/var/mobile/Containers/Data/Application/3F4B4215-11EB-4269-BA65-97DCC32ACAF6/Library/Documentation " 和 getImagePath :"/var/mobile/Containers/Data/Application /3F4B4215-11EB-4269-BA65-97DCC32ACAF6/Library/Documentation/1442405926.png“在我保存图像和getImagePath时获取:”/var/mobile/Containers/Data/Application/3F4B4215-11EB-4269-BA65-97DCC32ACAF6/ Library/Documentation/1442400637.png" 在检索图像时获取但 initWithContentsOfFile: 返回 nil 图像。

标签: ios objective-c uiimage nsdocumentdirectory nsdocumentdirectory-ios8


【解决方案1】:

您的目录名称中似乎有错字。请将NSDocumentationDirectory 替换为NSDocumentationDirectory,它应该可以工作。

【讨论】:

  • 是的,你是对的,我从@DipenPanchasara 得到了想法,谢谢你的回复:)。
【解决方案2】:
-(NSString *)saveImageDataWithImage:(UIImage *)image
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory ,NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *photoName = [NSString stringWithFormat:@"%ld.png",
                           (long)[[NSDate date] timeIntervalSince1970]];
    NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:photoName];
    NSFileManager *fileManager = [NSFileManager defaultManager];

    if (![fileManager fileExistsAtPath:getImagePath])
    {
        NSData *data1 = [NSData dataWithData:UIImagePNGRepresentation(image)];
        [data1 writeToFile:getImagePath atomically:YES];
    }
    return photoName;
}
-(UIImage *)GetImageFromPath:(NSString *)ImageName
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory ,NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:ImageName];
    UIImage *thumbNail = [[UIImage alloc] initWithContentsOfFile:getImagePath];
    return thumbNail;
}

【讨论】:

    猜你喜欢
    • 2017-10-03
    • 1970-01-01
    • 2020-01-30
    • 2021-04-24
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多