无法写入containerURLForSecurityApplicationGroupIdentifier?

时间:2015-01-05 14:11:01

标签: ios objective-c ios8 ios-app-group

在下面的例子中,我没有写入错误,但在读取时,数据长度为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;
}

1 个答案:

答案 0 :(得分:8)

您正在混淆网址和文件路径。使用[containerUrl path]而不是[containerUrl absoluteString],或使用dataWithContentsOfURL / writeToURL而不是dataWithContentsOfFile / writeToFile。