我是Swift和iOS開發人員的新手,並且尚未找到針對我的問題的特定答案。在Swift中使用自定義TableViewCell的核心數據圖像
我正在嘗試使用Core Data填充3個標籤和2個圖像的自定義表格視圖。
我閱讀了可選項,甚至在創建故事板中的單元格時使用Subtitle選項創建了類似於我現在嘗試執行的操作。這樣可行。
我的核心數據設置看起來像這樣在類的頂部:
// MARK: - Managed Object Context
var moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
// Initialize Fetch Results
var fetchedResultsController = NSFetchedResultsController()
func fetchRequest() -> NSFetchRequest {
let fetchRequest = NSFetchRequest(entityName: "Custom")
let sortDescriptor = NSSortDescriptor(key: "customFourImages", ascending: true)
fetchRequest.sortDescriptors = [sortDescriptor]
return fetchRequest
}
// MARK: - Retrieve Request
func getFetchRequest() -> NSFetchedResultsController {
fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest(), managedObjectContext: moc!, sectionNameKeyPath: nil, cacheName: nil)
return fetchedResultsController
}
我viewDidLoad中和viewDidAppear是這樣的:
// MARK: - Fetch
fetchedResultsController = getFetchRequest()
fetchedResultsController.delegate = self
do {
try fetchedResultsController.performFetch()
} catch {
print("Failed to Perform Initial Fetch")
return
}
self.tableView.reloadData()
最後,我的cellForRowAtIndexPath看起來是這樣的:
// MARK: - Dequeue Reusable Cell
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! CustomTableViewCell
// MARK: - Initiate Fetch Results for Index Path
let custom = fetchedResultsController.objectAtIndexPath(indexPath) as! Custom
let customLabel = custom.customLabels
let customTwoLabel = custom.customTwoLabels
let customThreeLabel = custom.customThreeLabels
let image = UIImage(named: "Custom Food")
let imageData = UIImagePNGRepresentation(image!)
custom.customFourImages = imageData
let images = UIImage(named: "Custom Drink")
let imagesData = UIImagePNGRepresentation(images!)
custom.customFiveImages = imagesData
// MARK: - Set Items in Cell to Returned Fetched Results
cell.customLabel?.text = "\(customLabel)"
cell.customTwoLabel?.text = "\(customTwoLabel)"
cell.customThreeLabel?.text = "\(customThreeLabel)"
cell.imageView?.image = UIImage(data: custom.customFourImages!)
cell.imageView?.image = UIImage(data: custom.customFiveImages!)
return cell
}
我嘗試過每一個我能想到的排列方式, ernet和StackOverflow作爲特定的答案。我也不喜歡使用字符串。我正在使用imagePickerController。但即使我的圖像資源中有圖像,例如「定製食品」,「定製飲料」,圖像仍然沒有發現零。
我無法破解它!
嗨,你的代碼到底在哪裏?你如何將圖像保存到核心數據?你能否更新你的代碼來顯示Custom類包含的內容?圖像需要保存爲NSData,並且在使用它們之前應打開您的可選項。 –
嗨丹尼爾,謝謝你的回覆:代碼無法解開圖像。他們被發現無。斯威夫特告訴我拆開包裝,例如cell.imageView?.image = UIImage(data:custom.customFourImages!) – slippies
但每次都崩潰。我有一個CustomTableViewCell,其中customLabel,customTwoLabel等具有IBOutlets,並且所有內容都連接在故事板中。 – slippies