swift - 如何从同一个 ViewController 的扩展中访问 var
问题描述
我在 ViewController 中创建了一个 var:
class ViewController: UIViewController {
var options: Options?
}
在 viewWillAppear 我设置选项
/ grab the options
let optionsFetch: NSFetchRequest<Options> = Options.fetchRequest()
do{
let results = try coreDataStack.managedContext.fetch(optionsFetch)
if(results.count > 0){
options = results.first
}
}catch let error as NSError{
print("\(error) is the error")
}
我也有这个扩展:
extension UIViewController {
func myMethod() {
let color = options.color
}
我似乎无法从扩展中访问 options var。我找到了这篇文章,并认为我已经按照他们所说的进行了操作,但仍然没有运气。 在此处输入链接描述
解决方案
你的扩展名错了。
extension ViewController {
func myMethod() {
let color = options.color
}
}
您似乎扩展了默认 UIViewController
类。你应该扩展你的ViewController
类,它是你创建的子类UIViewController
,你的变量options
是可用的。
推荐阅读
- python - 如何在 for 循环中使用 try/except 选择 cross_val_predict 方法?
- css - 使用 Quill 富编辑器的最大高度
- java - 为什么这个吐司不应该出现?
- oracle - 如何在减号 sql 中标记我的数据是旧的还是新的
- ffmpeg - ffmpeg - SIGSTOP 生成 moov atom
- r - 通过循环提取大型列表的内容
- keras - 将最佳检查点恢复到估计器 tensorflow 2.x
- java - 如何读取文本文件并指定它在 Java 中的对象类型?
- python - django 搜索网站 taggit
- azure - 管道 Azure Devops 中的“术语 'Set-AzureRmDataFactoryV2' 未被识别为 cmdlet 的名称”错误