2015-01-05 4 views
4

В следующем примере у меня нет ошибок при записи, но при чтении длина данных равна 0. Почему я не могу писать в общий контейнер?Не удается записать в контейнерURLForSecurityApplicationGroupIdentifier?

+ (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 путь] вместо [containerUrl absoluteString], либо используйте dataWithContentsOfURL/writeToURL вместо dataWithContentsOfFile/writeToFile.

Смежные вопросы