如何公开我的Struct变量?

时间:2015-09-04 07:23:57

标签: ios swift struct public alamofire

我的问题看起来非常简单。但我正在努力争取一天。

我需要将struct变量声明为公共变量。这样UICollectionViewController数据方法就可以访问Struct变量。

我该怎么办? 我自己试了一下。但我无法实现它

class SkillsController: UICollectionViewController {

    var mcnameArray :[String] = []

    var mcidArray :[String] = []


    func getSkills(){
            Alamofire.request(.GET, "http://www.wols.com/index.php/capp/main_category_list")
                .responseJSON { (_, _, data, _) in
                    let json = JSON(data!)
                    let Count = json.count
                    for index in 0...Count-1 {
                        var ds = json[index]["DISPLAY_STATUS"].string
                        if ds == "Y" {
                            var mcname = json[index]["MAIN_CATEGORY_NAME"].string
                            self.mcnameArray.append(mcname!)
                            var mcid = json[index]["MAIN_CATEGORY_ID"].string
                            self.mcidArray.append(mcid!)
                        }

                    }
                    var skill = Skills(mcname: self.mcnameArray, mcid: self.mcidArray)
                    println(skill.mcname.count)
            }

        }

    override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
            //#warning Incomplete method implementation -- Return the number of items in the section
            return skill.mcname.count// Throws an Error
        }

1 个答案:

答案 0 :(得分:0)

您的变量不是“私有”,而是本地作用域到它定义的函数。

如果您将其移至var mcnameArrayvar mcidArray旁边,则也可以从其他功能访问它。

但是,由于您正在进行异步网络请求,因此该变量需要更改。您可能希望将其设置为可选(var skill: Skill?),以便它在开头可以是nil,然后再更改。