4

在下面的示例中,我在写入时没有错误,但在读取时,数据长度为 0。为什么我不能写入共享容器?

+ (UIImage *)read {
    NSData *data = [NSData dataWithContentsOfFile:[self getPath]];
    NSLog(@"Data length: %d", data.length);
    UIImage *image = [UIImage imageWithContentsOfFile:[self getPath]];
    NSLog(@"%@", image);
    return image;
}

+ (void)write:(UIImage *)image {
    NSString *pngFilePath = [self getPath];
    NSData *data1 = [NSData dataWithData:UIImagePNGRepresentation(image)];
    [data1 writeToFile:pngFilePath atomically:YES];
}

+ (NSString *)getPath {
    NSURL *containerUrl = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.me.app"];
    NSString *pngFilePath = [[containerUrl absoluteString] stringByAppendingPathComponent:@"current.png"];

    NSLog(@"%@", pngFilePath);
    return pngFilePath;
}
4

1 回答 1

8

您正在混淆 URL 和文件路径。使用 [containerUrl path] 代替 [containerUrl absoluteString],或者使用 dataWithContentsOfURL/writeToURL 代替 dataWithContentsOfFile/writeToFile。

于 2015-01-06T07:41:21.467 回答