Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何将书签添加到UITableView单元格并保存到CoreData?_Ios_Swift_Uitableview_Core Data_Cloudkit - Fatal编程技术网

Ios 如何将书签添加到UITableView单元格并保存到CoreData?

Ios 如何将书签添加到UITableView单元格并保存到CoreData?,ios,swift,uitableview,core-data,cloudkit,Ios,Swift,Uitableview,Core Data,Cloudkit,我对向UITableView添加书签/收藏夹按钮有疑问。目前,我的mainVC有一个tableView,它是从CloudKit中的公共数据库填充的。如果我想添加一个书签/收藏夹按钮,用户可以在其中将该行的数据保存到CoreData字符串对象、图像、布尔类型…我该如何执行 我将该按钮添加为UITableViewCell的出口。在牢房里,我补充道 cell.favoriteButton.tag = indexPath.row 然后我在MainVC中添加了一个@IBAction addFavorit

我对向UITableView添加书签/收藏夹按钮有疑问。目前,我的mainVC有一个tableView,它是从CloudKit中的公共数据库填充的。如果我想添加一个书签/收藏夹按钮,用户可以在其中将该行的数据保存到CoreData字符串对象、图像、布尔类型…我该如何执行

我将该按钮添加为UITableViewCell的出口。在牢房里,我补充道

cell.favoriteButton.tag = indexPath.row
然后我在MainVC中添加了一个@IBAction addFavorites,但我不确定如何将该行中的所有对象保存到CoreData

这是我的“保存到核心数据”方法:

if let managedObjectContext = (UIApplication.sharedApplication().delegate as? AppDelegate)?.managedObjectContext
{
   place = NSEntityDescription.insertNewObjectForEntityForName("Place", inManagedObjectContext: managedObjectContext) as! Place
   place.name = name!
   place.type = type!
   place.address = address!
   place.neighborhood = neighborhood!
   place.phoneNumber = phoneNumber!
   if let placeImage = imageView.image
   {
      place.image = UIImagePNGRepresentation(placeImage)
   }
   do {
      try managedObjectContext.save()
   } catch {
      print(error)
      return
   }

有什么建议吗?

首先,我认为使用标签不是一个好主意。要使用按钮标识行,请使用以下方法:

let point = button.convertPoint(CGPointZero, toView: tableView)
let indexPath = tableView.indexPathForRowAtPoint(point)!
第二,你从哪里得到你的变量?在代码中,您似乎正在使用与单元格关联的属性。这也不是一个好主意,因为您不应该使用视图来读取数据,而应该使用原始的CloudKit数据源

第三,不建议将图像存储在核心数据中,除非它只是一个小缩略图。如果更大,请使用外部存储,在应用程序文档文件夹中设计一个方案,或从CloudKit按需下载


最后,你还不清楚你还需要什么。我想您希望在表视图中显示收藏夹状态。如果可以包含某种唯一标识符,则可以在核心对象数据集中的cellForRowAtIndexPath中检查该标识符是否存在,并相应地标记该单元格

为什么不使用parse.com保存对象?