如何在swift中使用类中的属性到另一个类

时间:2017-01-04 09:40:03

标签: ios swift

我有一个像这样的模型类

import Foundation
import SwiftyJSON

class SpecificCategoryJSON {

var _product_id: Int?
var _product_title: String?
var _product_sku: String?
var _product_image: URL?

init(items: JSON){

    self._product_id = items["product_id"].int
    self._product_title = items["product_title"].stringValue
    self._product_sku = items["product_sku"].stringValue
    let post_imgAA = items["product_image"].arrayValue
    for itemsIMG in post_imgAA {
        self._product_image = itemsIMG["guid"].URL
    }

}
var product_id: Int {
    if _product_id == nil {
        _product_id = 0
    }
    return _product_id!
}

var product_title: String {
    if _product_title == nil {
        _product_title = ""
    }
    return _product_title!
}

var product_sku: String {
    if _product_sku == nil {
        _product_sku = ""
    }
    return _product_sku!
}

var product_image: URL {
    if _product_image == nil {
        let myURL = "http://www.clker.com/cliparts/d/L/P/X/z/i/no-image-icon-hi.png"
        let noImage: URL = URL(string: myURL)!
        _product_image = noImage
    }
    return _product_image!
   }

  }

我想使用 product_id 作为参数发送,以使用 Alamofire 发出 POST 请求。这是 POST 请求,我将 product_id 保持为静态。

    class ProductDetailsManager {

    //........
    func printPublicGists() -> Void {

    let url: String = "http://xxx/get_product_informations/"
    let parameter = ["product_id": 33]

    Alamofire.request(url, method: .post, parameters: parameter, encoding: URLEncoding.default, headers: nil)
     .responseJSON { (response) in

        guard response.result.error == nil else {
           print(response.result.error!)
           return
        }

        guard let value = response.result.value else {
            print("no product to show")
            return
        }

        print(value)

    }

   }
//.......
}

我想从 SpecificCategoryJSON 类中获取 product_id ,并在类 ProductDetailsManager 中使用它来进行调用。我应该怎么做,继承覆盖 UserDefaults.standard.set ?请帮忙。

1 个答案:

答案 0 :(得分:0)

也许我误解了这个问题,但你应该实例化你的SpecificCategoryJSON类并访问它的属性:

func printPublicGists() -> Void {
    let url: String = "http://xxx/get_product_informations/"    
    let cat = SpecificCategoryJSON(items: someJSON)

    let parameter = ["product_id": cat.product_id]

    // ....
}