如何创建另一个类的对象来访问Swift中的类变量?

时间:2017-04-26 07:56:59

标签: ios swift

与目标C一样,我们创建一个类的对象来访问该类的变量 -

TableViewCell *obj = [[TableViewCell alloc] init];

然后使用“obj”我们可以访问类的变量。

同样,我在UIView的类中有TableViewCell的属性,我想在表视图存在的ViewController的主类中访问它。

我试过这样做 -

let viewObj = ViewAllCell()

内部viewDidLoad

viewObj.menuView.isHidden = true;

但正如此代码执行一样,我得到以下错误

  

“致命错误:在打开Optional时意外发现nil   值“

我知道这个问题肯定已被问过一百万次,但我不明白在Swift中搜索什么,因为我对这种语言很新,所以我再问一次。

2 个答案:

答案 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;

但是视图不能是静态的