【发布时间】:2015-09-30 15:25:15
【问题描述】:
我已经在互联网上搜索了我的问题(主要是在这里),我已经尝试过了,但我仍然无法让它工作。我正在尝试从核心数据中检索图像,然后将其显示在表格视图中。所以基本上,一个带有缩略图的表格视图以及一个名称和一个开关。我在下面有以下快速文件。谁能指导我该怎么做?除了图像检索之外,我还计划添加一个开关,当打开/关闭时它会要求输入密码,以便可以打开/关闭它。我该如何开始呢?希望得到您的善意回应。谢谢!
我有这个 sn-p 代码,用于将包含图像的记录保存到核心数据。
let mOC =
(UIApplication.sharedApplication().delegate
as! AppDelegate).managedObjectContext
@IBOutlet weak var firstName: UITextField!
@IBOutlet weak var lastName: UITextField!
@IBOutlet weak var status: UILabel!
@IBAction func saveRecord(sender: AnyObject) {
let entityDescription =
NSEntityDescription.entityForName("Faculty",
inManagedObjectContext: mOC)
let faculty = Faculty(entity: entityDescription!,
insertIntoManagedObjectContext: mOC)
faculty.firstname = firstName.text
faculty.lastname = lastName.text
let pickedImage = UIImageJPEGRepresentation(imageView.image!, 1.0)
faculty.image = pickedImage
do {
try mOC.save()
firstName.text = ""
lastName.text = ""
status.text = "New record saved."
NSNotificationCenter.defaultCenter().postNotificationName("load", object: nil)
self.dismissViewControllerAnimated(true, completion: nil)
} catch {
status.text = "Record not saved."
}
}
@IBOutlet weak var imageView: UIImageView!
var newMedia : Bool?
@IBAction func choosePhoto(sender: AnyObject) {
if UIImagePickerController.isSourceTypeAvailable(
UIImagePickerControllerSourceType.SavedPhotosAlbum) {
let imagePicker = UIImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType =
UIImagePickerControllerSourceType.PhotoLibrary
imagePicker.mediaTypes = [kUTTypeImage as String]
imagePicker.allowsEditing = false
self.presentViewController(imagePicker, animated: true,
completion: nil)
newMedia = false
}
}
这是 TableViewController,它在表格视图上显示记录,并且应该带有图像,这是我想要弄清楚的。
let managedObjectContext =
(UIApplication.sharedApplication().delegate
as! AppDelegate).managedObjectContext
var fetchedLastName = [String]()
var fetchedFirstName = [String]()
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "reloadData:",name:"load", object: nil)
let entityDescription =
NSEntityDescription.entityForName("Faculty",
inManagedObjectContext: managedObjectContext)
let request = NSFetchRequest()
request.entity = entityDescription
do{
let objects = try managedObjectContext.executeFetchRequest(request)
let results = objects
if results.count > 0 {
for var i = 0; i < results.count; i += 1{
let match = results[i] as! NSManagedObject
fetchedLastName.append((match.valueForKey("lastname") as? String)!)
fetchedFirstName.append((match.valueForKey("firstname") as? String)!)
}
} else {
}
}
catch{}
}
func reloadData(notification: NSNotification){
fetchedLastName.removeAll()
fetchedFirstName.removeAll()
let entityDescription =
NSEntityDescription.entityForName("Faculty",
inManagedObjectContext: managedObjectContext)
let request = NSFetchRequest()
request.entity = entityDescription
do{
let objects = try managedObjectContext.executeFetchRequest(request)
let results = objects
if results.count > 0 {
for var i = 0; i < results.count; i += 1{
let match = results[i] as! NSManagedObject
fetchedLastName.append((match.valueForKey("lastname") as? String)!)
fetchedFirstName.append((match.valueForKey("firstname") as? String)!)
}
} else {
}
}
catch{}
self.tableView.reloadData()
}
我是否认为应该在这里编写代码以从核心数据中检索图像并将其显示在表格视图上?
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("TEACH", forIndexPath: indexPath) as! TEACHTableViewCell
let row = indexPath.row
cell.facultyName.text = fetchedLastName[row] + ", " + fetchedFirstName[row]
return cell
}
【问题讨论】:
-
请只提供相关代码,即您访问CoreData的部分
-
您究竟想在哪里保存图像?我看不到你会这样做的代码。要保存图像,您只需转换为数据,然后在 ManagedObject 上设置一个值
-
到底是什么问题?,您打算在哪里显示该图像?
-
@milesper 我编辑了这篇文章。我想我已经弄清楚了如何保存图像,这是我无法做到的检索。
标签: swift core-data ios8 xcode7