我有一個名爲report
的自定義對象,其屬性爲comment
和image
。在prepareForSegue
- 方法我可以很容易地打電話report.comment = "Comment"
這工作正常...沒問題。然後我想設置圖像 ,並且當新的ViewController顯示沒有圖像顯示,但評論已設置。在自定義對象中存儲UIImage失敗
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()
語句來顯示我的原始圖像數據。我收到類似<ffd8ffe0 00104a46 49460001 01000048... and so on
的東西。我也沒有收到錯誤消息,但圖像沒有顯示。它看起來像轉換方法不起作用。轉換後,我得到了這樣的<UIImage: 0x7ff6f858bda0>, {1080, 1080}
。即使當我設置像report.image = UIImage(named: "defaultPhoto.png")!
這樣的靜態圖像時,圖像也不會顯示。
我也試過以下電話
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
但沒有什麼工作。 所以主要的問題是:爲什麼轉換方法不能按預期工作。 我知道很難說對於不知道項目的人來說錯了,但也許你有暗示或建議我可以檢查或尋找。 任何幫助表示讚賞。
編輯:
我準備Segue公司-方法看起來是這樣的。
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
}
你的prepareForSegue是什麼樣的? – beyowulf
我編輯了我的帖子向你展示了我的prepareForSegue-Method – user1895268
代碼是什麼樣的,顯示report.image? – beyowulf