我无法访问在同一类的扩展中声明的属性
如果我试图在课堂上访问它,我会得到let 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 {
        ...
    }

}

最佳答案

在代码中selectedCategory是一个局部变量,而不是属性。它只对在中声明的函数的作用域可见。
如果希望它是属性,则需要在类的主定义中声明它。目前,扩展中不支持存储的属性。这是类和结构创建方式的技术限制。向类的vtable添加新方法很容易,但是增加实例的存储空间很难。

关于ios - 无法在Swift 2.1中访问扩展内的属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36332347/

10-14 21:26