无法在Swift 2.1中访问扩展内的属性

时间:2016-03-31 11:38:49

标签: ios swift

我无法访问在同一类

的扩展名中声明的属性let selectedCategory

如果我尝试在课堂内访问它,我会得到Use of unresolved identifier 'selectedCategory'。我该如何访问它?

extension CreateRecipeVC: RecipeCategoryTableVCDelegate {
    func categoryController(controller: RecipeCategoryTableVC, didSelectCategory category: String) {
        let selectedCategory = category

        self.navigationController?.popViewControllerAnimated(true)

        let cell = RecipeCategoryCell()
        cell.configureSelectedCategoryCell(selectedCategory)
    }
}


class CreateRecipeVC: UIViewController, ... {

    if selectedCategory != nil {
        ...
    }

}

1 个答案:

答案 0 :(得分:2)

在您的代码中selectedCategory是一个局部变量,而不是属性。它只对其声明的函数范围可见。

如果您希望它成为一个属性,您需要在类的主要定义中声明它。目前,扩展中不支持存储的属性。这是创建类和结构的方式的技术限制。在类的vtable中添加新方法很容易,但很难增加实例存储的大小。