2016-03-31 15 views
0

Benim tasarruf yöntemidir:Veri, görüntü dizesinden sıfırdır.

Ben resim yüklemek ve kontrol koymak deneyin
-(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 DB'den olduğunu. Ben dize üssü tutarım. Hata ayıklama modunda bu dize var:

/var/mobile/Containers/Data/Application/7CD69EC9-9C20-48EE-B611-FC2353BC31B0/Documents/Image364.png

ve myData hala sıfırdır. Neden fikrin var mı?

+1

Orada dosya var mı? Veri içeriyor mu? – Wain

+0

Evet. Kapsayıcıyı indirdim ve içeride Image364.png dosyası var ve onu açabiliyorum. İyi görünüyor – hds

+0

'' self.team.logo' bir "yeniden derleme" yaptıktan sonra alınır? "DB" den bahsediyorsunuz, tahminimce yol değişti. Sadece Dokümanlar'dan sonra olanları saklamanız ve “NSDocumentDirectory” ile tekrar oradan yeniden inşa etmelisiniz. Örneğin, "yeniden derleme" arasında iki görüntüyü kaydedin ve "/ Uygulama /" ile "/ Belgeler /" arasında ne olduğunu karşılaştırın, anlayacaksınız. – Larme

cevap

0

IOS 8 dizisinden başlayarak kapsayıcılar değişti. Bu yüzden DB'nize tam yolunu saklamayın. Bunun yerine sadece görüntü adınızı saklayın. Görüntüyü geri çağırmak için:

NSString *temp = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject] stringByAppendingPathComponent:@"Image364.png"]; 
NSData *myData = [NSData dataWithContentsOfFile:temp]; 
UIImage *selectedImage = [UIImage imageWithData:myData]; 

Umarım yardımcı olur.

İlgili konular