我已经更新了我的代码从SWIFT 2.3至3迅速得到&许多错误移除所有的人,但来到这里卡住问题,同时迅速从2.3迁移到SWIFT 3
我得到错误的didSelectRowAt indexPath:中IndexPath UITableView的
任务:我打了数据API和实现代码如下其工作正常填充数据,但我想保存这一切是在swift2.3为我工作在didSelectRowAtIndexPath方法数据
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("selected ")
//print(self.searchflightsandfares[indexPath.row] as SearchFlightsAndFares)
let data: NSData
// data = NSKeyedArchiver.archivedData(withRootObject: self.searchflightsandfares[indexPath.row].airlineCodeOneWay)
data = NSKeyedArchiver.archivedData(withRootObject: self.searchflightsandfares[indexPath.row]) as SearchFlightsAndFares
//Set Data
UserDefaults.standard.set(data, forKey: "selectedFlightDetailData")
SelectedFlightDetailsVC()
}
模型类是:
import UIKit
import Foundation
class SearchFlightsAndFares:NSObject{
//segment data
var segmentaDataForDetailScreen:[NSDictionary]
var fareDataFromFlight:Dictionary<String, AnyObject>
//Flight Details -One Way
var airlineCodeOneWay: String? //for list view
var airlineNameOneWay: String? //for list view
var airlineCodeOneWaySegment:String? //for Detail view
var airlineNameOneWaySegment:String? //for Detail view
….more code …
init(fareDataFromFlight: Dictionary<String, AnyObject>,
segmentaDataForDetailScreen: [NSDictionary],
airlineCodeOneWay: String, //for list view
airlineNameOneWay: String, //for list view
airlineCodeOneWaySegment: String, //Flight Number one way
airlineNameOneWaySegment: String,
….more code …
{
self.fareDataFromFlight = fareDataFromFlight
self.segmentaDataForDetailScreen = segmentaDataForDetailScreen
//One Way
self.airlineCodeOneWay = airlineCodeOneWay
self.airlineNameOneWay = airlineNameOneWay
self.airlineCodeOneWaySegment = airlineCodeOneWaySegment
}
init(espDictionary: [String : AnyObject])
{
logic for assignment from API to InIt Variables //….more code …
}
required init(coder aDecoder: NSCoder) {
self.fareDataFromFlight = (aDecoder.decodeObject(forKey: "fareDataFromFlight") as? Dictionary<String, AnyObject>)!
self.segmentaDataForDetailScreen = (aDecoder.decodeObject(forKey: "segmentaDataForDetailScreen") as? [NSDictionary])!
//One Way
self.airlineCodeOneWay = aDecoder.decodeObject(forKey: "airlineCodeOneWay") as? String
self.airlineNameOneWay = aDecoder.decodeObject(forKey: "airlineNameOneWay") as? String
self.airlineCodeOneWaySegment = aDecoder.decodeObject(forKey: "airlineCodeOneWaySegment") as? String
self.airlineNameOneWaySegment = aDecoder.decodeObject(forKey: "airlineNameOneWaySegment") as? String
….more code …
}
func encodeWithCoder(aCoder: NSCoder) {
aCoder.encode(self.fareDataFromFlight, forKey: "fareDataFromFlight")
aCoder.encode(self.segmentaDataForDetailScreen, forKey: "segmentaDataForDetailScreen")
//One way
aCoder.encode(self.airlineCodeOneWay, forKey: "airlineCodeOneWay")
aCoder.encode(self.airlineNameOneWay, forKey: "airlineNameOneWay")
aCoder.encode(self.airlineCodeOneWaySegment, forKey: "airlineCodeOneWaySegment")
aCoder.encode(self.airlineNameOneWaySegment, forKey: "airlineNameOneWaySegment")
….more code …
}
加减速码 –