关键词:
【中文标题】使用 NSCoding 保存 TableView 单元格的重新排序【英文标题】:Saving reorder of TableView cells using NSCoding 【发布时间】:2016-02-01 19:08:59 【问题描述】:我正在使用Xcode7
和Swift2
处理一个iOS
项目。我有一个TableView
,它从NSCoding
获取array
。我已经启动它,以便用户可以在TableView
中重新排序TableViewCells
。但是,一旦用户完成并单击“完成”,即UIBarButtonItem
,我需要它来保存新订单。我的NSCoding
object
中有一个名为cellOrder
的值。我看了here,看到了CoreData
。我将如何为NSCoding
执行此操作以及将其保存在哪里?
我为TableViewCell
运动启动了以下代码:
func tableView(tableView: UITableView, canMoveRowAtIndexPath indexPath: NSIndexPath) -> Bool
return true
func tableView(tableView: UITableView, moveRowAtIndexPath fromIndexPath: NSIndexPath, toIndexPath: NSIndexPath)
let itemToMove = details[fromIndexPath.row]
details.removeAtIndex(fromIndexPath.row)
details.insert(itemToMove, atIndex: toIndexPath.row)
details
是保存我的数据的数组,使用NSCoding
。
【问题讨论】:
【参考方案1】:我认为对我来说最好的方法是在重新排序完成后将 details
array
保存到 NSUserDefaults
。我看到here 如何将NSObject
转换为NSData
以进行保存。我的moveRowAtIndexPath
部分的代码现在是:
func tableView(tableView: UITableView, moveRowAtIndexPath fromIndexPath: NSIndexPath, toIndexPath: NSIndexPath)
let itemToMove = details[fromIndexPath.row]
details.removeAtIndex(fromIndexPath.row)
details.insert(itemToMove, atIndex: toIndexPath.row)
// Archive NSObject and save as NSData
let myData = NSKeyedArchiver.archivedDataWithRootObject(details)
// NSUserDefaults Save for Reorder of cells
reportDefaults.setObject(myData, forKey: "savedReportListKEY")
reportDefaults.synchronize()
// NSCoding Save
saveReport()
【讨论】:
如何使用 NSCoding 保存结构
】如何使用NSCoding保存结构【英文标题】:HowtosaveastructwithNSCoding【发布时间】:2017-10-1817:21:27【问题描述】:如何使用NSCoding保存我的结构,这样即使用户使用它也不会改变关闭应用程序?如果您也能告诉我如何正确实现缺失的... 查看详情
使用 NSCoding 保存结构的 Helperclass
】使用NSCoding保存结构的Helperclass【英文标题】:HelperclassforsavingstructswithNSCoding【发布时间】:2017-01-2308:36:00【问题描述】:我想写一个函数来保存我的结构数组。我知道,使用NSCoding是正确的方法,但仅适用于类。但我找到了一... 查看详情
使用 NSCoding Swift 保存对象时出现异常
】使用NSCodingSwift保存对象时出现异常【英文标题】:ExceptionwhensavingobjectwithNSCodingSwift【发布时间】:2017-09-2318:14:35【问题描述】:我在尝试使用NSCoding保存/归档对象时遇到了一些问题。我基本上有一个QA类,它定义了一个问题和... 查看详情
NSCoding 游戏数据未快速保存
】NSCoding游戏数据未快速保存【英文标题】:NSCodinggamedatanotsavedswift【发布时间】:2015-04-2409:57:50【问题描述】:目前,我的数据没有在另一个新会话中检索到,它使用默认值。我必须有一个现有的plist文件才能工作吗?我尝试使... 查看详情
保存 PFObject NSCoding
】保存PFObjectNSCoding【英文标题】:SavingPFObjectNSCoding【发布时间】:2014-05-3122:24:37【问题描述】:我的问题:saveInBackground不起作用。它不起作用的原因:我正在使用NSKeyedArchiving将存储在NSArray中的PFObjects保存到文件中。我这样做... 查看详情
无法通过 NSCoding 保存表数据
】无法通过NSCoding保存表数据【英文标题】:UnabletosavetabledataviaNSCoding【发布时间】:2014-02-1823:15:30【问题描述】:我有一个用于显示表数据的对象数组(包含项目名称和创建日期)。我想使用NSCoding协议保存这个数组。每次按下... 查看详情
Swift,NSCoding 保存类的数组不起作用
】Swift,NSCoding保存类的数组不起作用【英文标题】:Swift,NSCodingtosavearrayofaclassnotworking【发布时间】:2016-04-2614:23:32【问题描述】:我是Swift和iOS的新手,在制作应用程序时遇到了这个问题。我想基本上使用NSCoding将用户数据存储... 查看详情
为啥 NSCoding 无法在正确保存后解码对象?
】为啥NSCoding无法在正确保存后解码对象?【英文标题】:WhyisNSCodingunabletodecodeanobjectoncesavedproperly?为什么NSCoding无法在正确保存后解码对象?【发布时间】:2020-01-1419:19:26【问题描述】:这是我在核心数据中保存为可转换的完整... 查看详情
iCloud - NSCoding 或核心数据
】iCloud-NSCoding或核心数据【英文标题】:iCloud-NSCodingorCoreData【发布时间】:2015-10-1408:44:39【问题描述】:我有一个使用NSCoding的应用程序,3个类,不相关-因此使用简单的NSCoding方法来保存我的对象数组。但是,现在是iCloud的问... 查看详情
如何归档 NSDictionary 的 NSArray(使用 NSCoding)?
】如何归档NSDictionary的NSArray(使用NSCoding)?【英文标题】:HowdoIarchiveanNSArrayofNSDictionary(withNSCoding)?【发布时间】:2011-03-2707:17:01【问题描述】:假设我将数据保存在这样的数组中wordList=[[NSMutableArrayalloc]init];while([rsnext])//Somedatab... 查看详情
将 Codable 保存到 UserDefaults 并匹配 NSCoding 的外观
】将Codable保存到UserDefaults并匹配NSCoding的外观【英文标题】:SaveaCodabletoUserDefaultsandmatchingthelookofNSCoding【发布时间】:2019-07-2322:10:39【问题描述】:我有一个名为Station的struct,它支持Codable协议。由于它是一个结构体,它不能支... 查看详情
如何对 NSCoding 进行单元测试?
】如何对NSCoding进行单元测试?【英文标题】:HowtounittestNSCoding?【发布时间】:2011-11-2509:27:27【问题描述】:我有一个使用NSCoding更准确地说是NSKeyedArchiver保存数据的iOS应用程序。此应用程序已在AppStore上架。我正在开发应用程... 查看详情
如何在 Swift 3 中使用持久化和检索符合 NSCoding 的对象到应用程序文档目录?
】如何在Swift3中使用持久化和检索符合NSCoding的对象到应用程序文档目录?【英文标题】:Howtousepersist&retrieveanNSCodingcompliantobjecttoappDocumentdirectoryinSwift3?【发布时间】:2016-07-2919:12:48【问题描述】:这是一个符合NSCoding的对象... 查看详情
Swift NSCoding - 如何读取编码数组
】SwiftNSCoding-如何读取编码数组【英文标题】:SwiftNSCoding-Howtoreadanencodedarray【发布时间】:2017-05-2200:39:58【问题描述】:我正在使用SwiftPlayground使用NSCoding编写父子关系。关系可以描述为:一个Author可以写多个Books但是,当我尝... 查看详情
Objective-C:如何让它为 NSCoding 保存两个文件而不是一个文件?
】Objective-C:如何让它为NSCoding保存两个文件而不是一个文件?【英文标题】:Objective-C:HowtomakeitsavetwofilesinsteadofoneforNSCoding?【发布时间】:2011-12-1323:45:05【问题描述】:我的代码在这里:-(void)loadDataFromDisk[dictrelease];NSMutableData*dat... 查看详情
使用 WebService 更新 TableView 并保存到 CoreData
】使用WebService更新TableView并保存到CoreData【英文标题】:UpdatingaTableViewwithaWebServiceandSavingtoCoreData【发布时间】:2010-05-1801:34:28【问题描述】:我正在做一个项目,我有一个表视图,该表视图当前通过返回XML的Web请求进行更新。... 查看详情
如何使用 Swift 保存从 tableView 上的 textField 收到的用户答案
】如何使用Swift保存从tableView上的textField收到的用户答案【英文标题】:HowdoyousaveuseranswersreceivedfromatextFieldonatableViewusingSwift【发布时间】:2017-08-1401:14:02【问题描述】:我做了一个小测验,其中tableView包含不同的问题和答案作为... 查看详情
使用 NSCoding 协议传递值
】使用NSCoding协议传递值【英文标题】:PassvalueusingNSCodingProtocol【发布时间】:2017-07-3112:17:21【问题描述】:我正在尝试在使用NSCoding协议单击UITabelViewCell内的单元格时将数据传递到详细信息页面NSCoder*coder=[[NSCoderalloc]init];[coderenc... 查看详情