Это мой метод сохранения:Данные ноль из строки изображения.
-(NSString *)saveImage:(UIImage *)image
{
NSInteger RandomIndex = arc4random() % 1000;
NSString *randomImageName =[NSString stringWithFormat:@"Image%i.png",RandomIndex];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:randomImageName];
if ([[NSFileManager defaultManager] fileExistsAtPath:savedImagePath]) {
[[NSFileManager defaultManager] removeItemAtPath:savedImagePath error:nil];
NSLog(@"file removed from path");
}
NSLog(@"Saved Image Path : %@",savedImagePath);
NSData* imageData = UIImagePNGRepresentation (image);
[imageData writeToFile:savedImagePath atomically:YES];
self.teamLogo = savedImagePath;
return savedImagePath;
}
Я пытаюсь загрузить изображение и поместить в систему управления:
NSData *myData = [NSData dataWithContentsOfFile:self.team.logo];
UIImage *selectedImage = [UIImage imageWithData:myData];
self.team.logo от БД. Я держу строку в базе. В режиме отладки я получил эту строку:
/var/mobile/Containers/Data/Application/7CD69EC9-9C20-48EE-B611-FC2353BC31B0/Documents/Image364.png
и MyData по-прежнему равна нулю. У вас есть идея, почему?
Есть ли файл? Он содержит данные? – Wain
Да. Я загрузил контейнер, а внутри - файл Image364.png, и я могу его открыть. Выглядит хорошо – hds
'self.team.logo' извлекается после выполнения« перекомпиляции »? Вы говорите о «БД», поэтому я предполагаю, что путь изменился. Вы должны сохранить только то, что после Документов /, и снова отстроить его оттуда, используя материал NSDocumentDirectory. Например, сохраните два изображения между «перекомпилировать» и сравните то, что находится между '/ Application /' и '/ Documents /', вы поймете. – Larme