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