我想通过For循环播放添加大约十几个UIViews
。目前正在设置它并且无法使其正常工作。退后一步,试着只设置一个UIView
,但仍然没有运气。
我收到错误:
致命错误:在解包可选值时意外发现nil
对于我所做错的任何建议,我们将不胜感激:
代码:
class ViewController: UIViewController {
var button: HamburgerButton! = nil
var block1: shapeTestUI! = nil
override func viewDidLoad() {
super.viewDidLoad()
let block = createBlock(block1)
self.view.addSubview(block)
}
func createBlock(blocks:UIView) -> UIView {
let block = blocks as UIView
block.frame = CGRectMake(0, 0, 50, 50)
return block
}
}
答案 0 :(得分:1)
您必须先将block1
初始化,然后才能将其传递给createBlock
,因为blocks
功能参数不是可选的:
override func viewDidLoad() {
super.viewDidLoad()
block1 = shapeTestUI() //Or any init from your shapeTestUI model
let block = createBlock(block1)
self.view.addSubview(block)
}
答案 1 :(得分:1)
在访问视图之前初始化视图。
class ViewController: UIViewController {
var button: HamburgerButton! = nil
var block1: shapeTestUI! = shapeTestUI()
override func viewDidLoad() {
super.viewDidLoad()
let block = createBlock(block1)
self.view.addSubview(block)
}
func createBlock(blocks:UIView) -> UIView {
let block = blocks as UIView
block.frame = CGRectMake(0, 0, 50, 50)
return block
}
}
答案 2 :(得分:1)
init(count count:Int,repeatedValue repeatedValue:Element)
答案 3 :(得分:0)
您为block1对象指定了nil,并在初始化对象之前直接将其传递给方法。 所以在将block1传递给方法之前,先将它初始化。