我无法访问在同一类
的扩展名中声明的属性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 {
...
}
}
答案 0 :(得分:2)
在您的代码中selectedCategory
是一个局部变量,而不是属性。它只对其声明的函数范围可见。
如果您希望它成为一个属性,您需要在类的主要定义中声明它。目前,扩展中不支持存储的属性。这是创建类和结构的方式的技术限制。在类的vtable中添加新方法很容易,但很难增加实例存储的大小。