2015-01-05 2 views
4

다음 예에서는 쓰기시 오류가 발생하지 않지만 읽는 동안 데이터 길이는 0입니다. 공유 컨테이너에 쓸 수없는 이유는 무엇입니까?containerURLForSecurityApplicationGroupIdentifier에 쓸 수 없습니까?

+ (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; 
} 

답변

8

URL과 파일 경로가 혼합되어 있습니다. [containerUrl absoluteString] 대신 [containerUrl path]를 사용하거나 dataWithContentsOfFile/writeToFile 대신 dataWithContentsOfURL/writeToURL을 사용하십시오.