IPhone : IOS SWIFT ALAMOFIRE JSON error when parsing Data

on Sunday, February 22, 2015

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