I have two questions:
1) How to resolve the following JSon parsing issue: I follow this tutorial to create an Alamofire/SwiftJson parsing Data. In the simulator I can see the output of my JSON file when println my user data.description. However I got error parsing /usersdata/1 and I can not resolve it.
2) How to change my tableview labels with the parsing data ? I have created my Outlet Labels, I have created a class to store the data, etc. I just don't know how to do that, please advise ( I am using a static tableViewCell)
UITableViewController:
import UIKit
import Alamofire
import SwiftyJson
class PersonalDetails: UITableViewController {
required init(coder aDecoder: NSCoder) {
println("init PersonalDetails")
super.init(coder: aDecoder)
}
deinit {
println("deinit PersonalDetails")
}
var usersData = [PersonalDetailsData]()
@IBOutlet weak var dataUsername: UILabel!
@IBOutlet weak var dataGender: UILabel!
@IBOutlet weak var dataArea: UILabel!
@IBOutlet weak var dataBirthday: UILabel!
@IBOutlet weak var dataMobilePhone: UILabel!
@IBOutlet weak var dataSignature: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults()
var username = prefs.valueForKey("USERNAME") as NSString
Alamofire.request(.GET, "http://mywebsite/app/data/jsonpersodata.php", parameters: ["username": username]).responseJSON() { (request, response, data, error) in
if let anError = error
{
// got an error in getting the data, need to handle it
println("error calling GET on/usersdata/1")
println(error)
}
else if let data: AnyObject = data
{
// handle the results as JSON, without a bunch of nested if
let userdata = JSON(data)
// now we have the results, let's just print them though a tableview would definitely be better UI:
println("The data are: " + userdata.description)
if let mobilephone = userdata["mobilephone"].string
{
// to access a field:
println("The mobilephone is: " + mobilephone)
}
else
{println("error parsing /usersdata/1")
}}
}.responseString{ (request, response, stringResponse, error) in
println(stringResponse)
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@IBAction func logoutTapped(sender : UIButton) {
let appDomain = NSBundle.mainBundle().bundleIdentifier
NSUserDefaults.standardUserDefaults().removePersistentDomainForName(appDomain!)
self.performSegueWithIdentifier("logout", sender: self)
}
}
My Class
import Foundation
class PersonalDetailsData: NSObject {
var dataUsername:String?
var dataGender:String?
var dataArea:String?
var dataBirthday:String?
var dataMobilePhone:String?
var dataSignature:String?
}
0 comments:
Post a Comment