如何在swift编程中创建全局属性(变量)?并从其他类传递值
我有一个UITableViewCell类,该单元格是从包含表视图的另一个类初始化的。我想从表视图类向单元格类传递一个整数值 在objective c中,它只是通过生成全局变量并在生成全局变量类的实例时传递值来完成的。 我不希望在声明时有任何值,这个全局变量将更改该值,并在通过另一个类时获取该值 我不知道哪里出错了,请看下面提到的我的代码- UITableViewCell类:-如何在swift编程中创建全局属性(变量)?并从其他类传递值,swift,xcode6,ios8.3,Swift,Xcode6,Ios8.3,我有一个UITableViewCell类,该单元格是从包含表视图的另一个类初始化的。我想从表视图类向单元格类传递一个整数值 在objective c中,它只是通过生成全局变量并在生成全局变量类的实例时传递值来完成的。 我不希望在声明时有任何值,这个全局变量将更改该值,并在通过另一个类时获取该值 我不知道哪里出错了,请看下面提到的我的代码- UITableViewCell类:- import UIKit class PostHeaderCell: UITableViewCell { var l
import UIKit
class PostHeaderCell: UITableViewCell {
var loopVariable: Int? // This is global variable that i have written
@IBOutlet weak var viewMain: UIView!
@IBOutlet weak var viewCategory: UIView!
@IBOutlet weak var mainViewHeight: NSLayoutConstraint!
@IBOutlet weak var topLayoutViewCategory: NSLayoutConstraint!
override func awakeFromNib() {
super.awakeFromNib()
print(loopVariable)
viewMain.layer.cornerRadius=5.0
viewMain.layer.borderColor = UIColor(red: 212.0/255.0, green: 217.0/255.0, blue: 221.0/255.0, alpha: 1.0).CGColor
viewMain.layer.borderWidth=1.0
var myVar = 50.0 as CGFloat
for var i=0;i<loopVariable;i++
{
mainViewHeight.constant=mainViewHeight.constant+30
var postCell :PostCategoryView?
postCell = NSBundle.mainBundle().loadNibNamed("PostCategoryView", owner: self, options: nil)[0] as? PostCategoryView
postCell!.frame=CGRectMake(10,myVar+10,postCell!.frame.size.width,50)
print(postCell)
myVar = myVar + 55.0;
}
self.layoutSubviews()
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
注意:我想初始化类B中循环变量的值,但它总是给出nil(我已经将2作为循环变量的值传递给了它)。您需要的是一个“类”变量,用
static
声明。以下是一个简化的示例:
class Foo {
static var counter : Int = 0
init () {
Foo.counter++
}
}
在本例中,每次创建新的Foo
时,计数器都会递增。因此:
9> Foo()
$R0: Foo = {}
10> Foo.counter
$R1: Int = 1
11> Foo()
$R2: Foo = {}
12> Foo.counter
$R3: Int = 2
但是,增量只是计数器值如何作用于类而不是实例的一个示例
对于您的情况,您可以使用
Foo.counter = 10
您可以在其他功能中使用它:
class Foo {
// ...
func awakeFromNib () {
for var i = 0; i < Foo.counter; i++ {
// ...
}
}
}
class Foo{
// ...
func awakeFromNib(){
对于变量i=0;i
只需移动变量:Int?对于顶级Leonardo,我认为它是顶级的,如果我移动它,那么会得到编译器错误“PostHeaderCell没有成员变量loopVariable”
class Foo {
// ...
func awakeFromNib () {
for var i = 0; i < Foo.counter; i++ {
// ...
}
}
}