与目标C一样,我们创建一个类的对象来访问该类的变量 -
TableViewCell *obj = [[TableViewCell alloc] init];
然后使用“obj”我们可以访问类的变量。
同样,我在UIView
的类中有TableViewCell
的属性,我想在表视图存在的ViewController
的主类中访问它。
我试过这样做 -
let viewObj = ViewAllCell()
内部viewDidLoad
viewObj.menuView.isHidden = true;
但正如此代码执行一样,我得到以下错误
“致命错误:在打开Optional时意外发现nil 值“
我知道这个问题肯定已被问过一百万次,但我不明白在Swift中搜索什么,因为我对这种语言很新,所以我再问一次。
答案 0 :(得分:0)
您的问题不在于访问变量。 menuView变量是一个可选变量,它设置为nil。
案例1: 如果您确定每个ViewAllCell都应该有一个menuView,请不要将它作为可选项。您当前的代码如下所示:
<强> ViewAllCell.swift 强>
internal var menuView : MenuView? = nil
将其更改为:
internal var menuView : MenuView = MenuView(frame:<yourRequiredframe>)
在这里设置框架,或者只使用menuView = MenuView()进行实例化,然后再设置它。
案例2:
如果您希望menuView是可选的,请在viewDidLoad()中实例化menuView
<强> viewDidLoad中()强>
let viewObj = ViewAllCell()
viewObj.menuView = MenuView(frame:<yourRequiredframe>)
viewObj.menuView.isHidden = true;
如果你想了解很多,关于可选项,包装,展开和保护语句的更多信息,请看看: http://www.informit.com/articles/article.aspx?p=2469047&seqNum=2
答案 1 :(得分:-1)
无需为Access类变量创建对象。
根据obj C =&gt; clasname.staticVariable
/ ********************** /
UITableViewCell *fontCell = [_tableView cellForRowAtIndexPath:[_tableView indexPathForSelectedRow]]
UIView *view = Font.view;
但是视图不能是静态的