2016-03-28 26 views
0

comment ve image öznitelikleriyle report adlı özel bir nesnem var. prepareForSegue -Method'de report.comment = "Comment"'u kolayca arayabilirim. Bu iyi çalışıyor ... sorun değil. Ardından, görüntüyü olarak ayarlamak istiyorum ve yeni ViewController görünene kadar hiçbir görüntü gösterilmediğinde, ancak açıklama belirlendi.Özel bir nesnede bir UIImage saklama

if let imageData = valueDict.valueForKey("image") 
{ 
    print(imageData) 
    print("Before processing: \(report.image)") //report.image has a standard value; UIImage() 
    report.image = UIImage(data: imageData as! NSMutableData, scale: 1.0)! 
    print("After processing: \(report.image)") 
} 

İlk print() -Bildirim bana orijinal görüntü verilerini gösterir eminim. <ffd8ffe0 00104a46 49460001 01000048... and so on gibi bir şey alıyorum. Ayrıca hata mesajı alıyorum ama görüntü gösterilmiyor. dönüştürme yöntemi çalışmıyor gibi görünüyor. Dönüştürdükten sonra bu gibi bir şey olsun <UIImage: 0x7ff6f858bda0>, {1080, 1080}. report.image = UIImage(named: "defaultPhoto.png")! gibi statik bir görüntü ayarladığımda bile, görüntü gösterilmiyor.

şunlarla aramaları

report.image = UIImage(data: valueDict.valueForKey("image") as! NSData)! 
report.image = (valueDict.objectForKey("image") as? UIImage)! 
report.image = UIImage(data: valueDict.objectForKey("image")) 
report.image = valueDict["image"] as! UIImage 

Ama hiçbir şey çalışıyor çalıştı. Yani asıl soru şudur: dönüştürme yöntemi neden beklendiği gibi çalışmıyor. Projeyi bilmeyen biri için yanlış bir şey söylemek zor olduğunu biliyorum ama belki neleri kontrol edebileceğimi veya aradığımı gösteren bir ipucum var. Herhangi bir yardım için teşekkür ederiz.

DÜZENLEME:

Segue-Yöntem şuna benzer hazırlanın listem.

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 
    { 

     let dtvc: DetailReportTableViewController = segue.destinationViewController as! DetailReportTableViewController 

     let indexPath = tableView.indexPathForSelectedRow 

     let cell = tableView.cellForRowAtIndexPath(indexPath!) as! MyReportsTableViewCell 
     print("The ReportNumber is: \(cell.reportNumber)") 

     for singleReport in listOfAllReports 
     { 
      if singleReport.key as! String == cell.reportNumber 
      { 
       print("Bericht gefunden.") 
       let valueDict = singleReport.value as! NSDictionary 

       report.category = valueDict.objectForKey("category") as! String 
       report.comment = valueDict.objectForKey("comment") as! String 


       if let dateTime = valueDict.objectForKey("date") 
       { 
        let df = NSDateFormatter() 
        df.dateFormat = "dd-MM-yyy HH:mm:ss" 

        report.timestamp = df.dateFromString(dateTime as! String)! 
       } 

       if let locationData = valueDict.valueForKey("location") 
       { 
        report.locationData.längengrad = locationData.objectAtIndex(0) as! Double 
        report.locationData.breitengrad = locationData.objectAtIndex(1) as! Double 
       } 

       if let imageData = valueDict.valueForKey("image") 
       { 
        print(imageData) 
        print("Before processing: \(report.image)") //report.image has a standard value; UIImage() 
        report.image = UIImage(data: imageData as! NSMutableData, scale: 1.0)! 
        print("After processing: \(report.image)") 
       } 

      } 

     } 
     print("Category: \(report.category)") 
     print("Datum: \(report.timestamp)") 
     print("Location: \(report.locationData)") 
     print("Comment: \(report.comment)") 
     print("Image: \(report.image)") 

     dtvc.report = report 

    } 
+0

PreparasyonunuzForSegue neye benziyor? – beyowulf

+0

Mesajımı düzenlediğimde size hazırladımForSegue-Method – user1895268

+0

Bu raporda nasıl bir rapor görüntülenecek? – beyowulf

cevap

0

i statik bir resim ayarlamak bile

olursa ... görüntü

doğrudur gösterilmez, sorun UIImageView değil görüntünün kendisi ile olasıdır . 0x7ff6f858bda0, {1080, 1080}

bellek konumu gösteriyor ve görüntünün boyutu:

Ben

UIImage eminim. (Senin görüntünün 1080x1080 olduğunu tahmin ediyorum) bu yüzden görüntüyü doğru bir şekilde yarattığını düşünüyorum, sadece görüntülenmiyor.

Görüntü görünümünüzün görünür durumda olduğunu, başka görünümlerin altında olmadığını ve uygun bir şekilde ucunuza bağlı olduğunu kontrol edin.

+0

Cevabınız için teşekkürler, ama tuhaf. UIImage: 0x7ff6f858bda0, {1080, 1080} 'değeri doğru olamaz. Çünkü orijinal verileri biliyorum. Yani 'report.image', 'report.image = imageData' adını vermeme rağmen' imageData''dan tamamen farklı bir değere sahiptir. Ama ben görüntüyü tekrar kontrol edeceğim. – user1895268

+1

Görüntü görünümünüzü hiç gösterebilir misiniz? – PeejWeej

+0

Vay, bunu biliyordum. Kodumu önerdiğin gibi kontrol ettim. ama görüntü görüntüsü değildi. Hedef görüntü denetleyicisinde bir satır eksikti. Tahmin etmeden önce birçok parçaya yorum yaptım ve bir şekilde ithal hattı kaldırdım. Yani bir tahsis eksikti. Herkese çok teşekkür ederim – user1895268

İlgili konular