2017-06-22 48 views
0

Iam新的Swift中,我想将我的结构转换为参数与Alamofire 4发布它。 请原谅我的英语不好。Swift 3结构参数Alamofire4

我的结构是在另一大类:

import Foundation 

类structUser:NSObject的{

var myStructUser = [person]() 


struct person { 
    var firstName : String 
    var lastName : String 
    var age: Int 
    init (firstName : String, lastName : String, age : Int) { 
     self.firstName = firstName 
     self.lastName = lastName 
     self.age = age 

    } 
} 

override init(){ 
    myStructUser.append(person(firstName: "John", lastName: "Doe", age: 11)) 
    myStructUser.append(person(firstName: "Richard", lastName: "Brauer", age : 22)) 
    myStructUser.append(person(firstName: "Merrideth", lastName: "Lind", age : 55)) 
} 

}

现在

在主类我要发布Alamofire,却怎么也我只转换结构的名字和年龄?

import UIKit 

类的ViewController:UIViewController的{

let classStructUser = structUser() 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
    print(classStructUser.myStructUser) 
} 


func postJson(){ 
    //need format [String : Any] 
    for item in classStructUser.myStructUser{ 
     // var name = classStructUser.myStructUser.name 
     // var age = classStructUser.myStructUser.age 

    } 

    print(classStructUser.myStructUser) 

    /*here i need the Json in format: 

    { 
    "name":"John", 
    "age":11 
    } 

    { 
    "name":"Richard", 
    "age":22 
    } 

    { 
    "name":"Merrideth", 
    "age":55 
    } 


    an so on array.count 
    */ 
} 

}

另一个问题:

如何从VieControllerClass

访问变量的结构(structUser)

THX您的帮助!并请解释完整的解决方案,因为我想了解它是如何工作的。 Thx!

回答

0
class structUser: NSObject{ 

    var myStructUser = [person]() 

    struct person { 
     var firstName : String 
     var lastName : String 
     var age: Int 
     init (firstName : String, lastName : String, age : Int) { 
      self.firstName = firstName 
      self.lastName = lastName 
      self.age = age 

     } 

     static func jsonArray(array : [person]) -> String 
     { 
      return "[" + array.map {$0.jsonRepresentation}.joined(separator: ",") + "]" 
     } 

     var jsonRepresentation : String { 
      return "{\"name\":\"\(firstName)\",\"age\":\"\(age)\"}" 
     } 
    } 

    func jsonRepresentation() -> String { 
     return person.jsonArray(array: myStructUser) 
    } 

    override init(){ 
     myStructUser.append(person(firstName: "John", lastName: "Doe", age: 11)) 
     myStructUser.append(person(firstName: "Richard", lastName: "Brauer", age : 22)) 
     myStructUser.append(person(firstName: "Merrideth", lastName: "Lind", age : 55)) 
    } 
} 

并且像这样使用它。

let jsonString = classStructUser.myStructUser.jsonRepresentation() 
+0

这就是全部?我怎样才能选择姓名和年龄? – silazzz

+0

好的,谢谢!我会测试它!你能回答我的第二个问题吗? – silazzz

+0

查看更新的答案 – Bilal