i have problem with saving dictionary data into UserDefaults, NSCache, to file , i try to figure what i am doing wrong but i didn't have any progress so far. I'll try to simplify my problem
struct Notes {
var ntitle: String!
var username: String!
var snapshot: FIRDataSnapshot
var key: String!
var uid: String!
var ref: FIRDatabaseReference?
init(ntitle: String, username: String, uid: String,key: String, ref: FIRDatabaseReference!, snapshot: FIRDataSnapshot ){
self.username = username
self.ntitle = ntitle
self.uid = uid
self.key = key
self.snapshot = snapshot
self.ref = ref
}
func toAnyObject() -> [String: AnyObject] {
return ["ntitle": ntitle as AnyObject, "username": username as AnyObject, "uid": uid as AnyObject]
}
}
class NotesController: UITableViewController {
var notesdict = [Notes]()
override func viewDidAppear(_ animated: Bool) {
DispatchQueue.main.async{
self.tableView.reloadData()
}
var newItems = [Notes]()
if FIRAuth.auth()?.currentUser == nil {
let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Login")
self.present(vc, animated: true, completion: nil)
}
else {
guard let uid = FIRAuth.auth()?.currentUser?.uid else {
return
}
let ref = FIRDatabase.database().reference().child("user-Notes").child(uid)
ref.observe(.childAdded, with: { (snapshot) in
let postID = snapshot.key
let postReference = FIRDatabase.database().reference().child("/Notes/\(postID)")
postReference.observe(.value, with: { (snapshot) in
let reff = FIRDatabase.database().reference()
if snapshot.hasChildren() == true{
let newTodos = Notes(ntitle: ((snapshot.childSnapshot(forPath: "ntitle").value as? String as AnyObject??)! ?? ("" as AnyObject?)!) as! String,username: ((snapshot.childSnapshot(forPath: "username").value as? String as AnyObject??)! ?? ("" as AnyObject?)!) as! String,uid: ((snapshot.childSnapshot(forPath: "uid").value as? String as AnyObject??)! ?? ("" as AnyObject?)!) as! String, key: snapshot.key, ref: snapshot.ref, snapshot: snapshot)
newItems.insert(newTodos, at: 0)
self.notesdict = newItems
}
})
}, withCancel: nil)
}
self.tableView.reloadData()
}
i just want to save and use later notesdict [Notes]type, I was try almost everything,Write and read file with list NSDictonary swift, Save dictionary in userdefaults in swift 3 with xcode 8 .... if anybody have some idea i would appreciate it very much.