Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIImageView未正确初始化并返回nil_Ios_Swift_Uiimageview - Fatal编程技术网

Ios UIImageView未正确初始化并返回nil

Ios UIImageView未正确初始化并返回nil,ios,swift,uiimageview,Ios,Swift,Uiimageview,在我的CathyTaskLogMessageViewController类中,我有以下代码: import UIKit class CathyTaskLogMessageViewController: UIViewController { @IBOutlet var tapGestureRecognizer: UITapGestureRecognizer! @IBOutlet weak var messageTextView: UITextView! var defa

在我的
CathyTaskLogMessageViewController
类中,我有以下代码:

import UIKit

class CathyTaskLogMessageViewController: UIViewController {

    @IBOutlet var tapGestureRecognizer: UITapGestureRecognizer!
    @IBOutlet weak var messageTextView: UITextView!
    var defaultPictureButton: UIButton = UIButton(type: UIButtonType.Custom) as UIButton

    override func viewDidLoad() {
        super.viewDidLoad()

        defaultPictureButton = UIButton(type: UIButtonType.Custom) as UIButton
        defaultPictureButton.frame = CGRectMake(100, 100, 40, 40)
        defaultPictureButton.addTarget(self, action: "defaultPictureButtonTapped:", forControlEvents: UIControlEvents.TouchUpInside)
        defaultPictureButton.setImage(UIImage(named: "defaultPicture"), forState: UIControlState.Normal)
        defaultPictureButton.layer.cornerRadius = 20.0
        defaultPictureButton.clipsToBounds = true
        defaultPictureButton.exclusiveTouch = true
        self.view.addSubview(defaultPictureButton)

    }

    func defaultPictureButtonTapped(sender: UIButton) {

        let imageViewerViewController = ImageViewerViewController()
        imageViewerViewController.image = self.defaultPictureButton.imageView!.image
        imageViewerViewController.centerPictureFromPoint(self.defaultPictureButton.frame.origin, ofSize: self.defaultPictureButton.frame.size, withCornerRadius: self.defaultPictureButton.layer.cornerRadius)

    }

}
在我的
ImageViewerViewController
类中,我有以下代码:

import UIKit

class ImageViewerViewController: UIViewController, UIScrollViewDelegate {

    @IBOutlet weak var image: UIImage!
    @IBOutlet weak var imageView: UIImageView!
    @IBOutlet weak var scrollView: UIScrollView!

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }

    func centerPictureFromPoint(point: CGPoint, ofSize size: CGSize, withCornerRadius radius: CGFloat) {

        self.imageView = UIImageView(frame: CGRect(x: point.x, y: point.y, width: size.width, height: size.height))
        self.imageView.layer.cornerRadius = radius //I am getting the error here
        self.imageView.clipsToBounds = true
        self.imageView.image = self.image

    }

}

我得到的错误是:
致命错误:在展开可选值时意外发现nil
。在我看来,我通过编写
self.imageView=UIImageView(frame:CGRect(x:point.x,y:point.y,width:size.width,height:size.height))初始化
imageView
。然而,它返回零。有人对此有解决方案吗?

如果您不想通过xib或故事板启动imageView。将属性声明更改为:

@IBOutlet weak var imageView: UIImageView!


弱导致立即释放imageView。

或者如果它是一个出口,则将其连接起来。您可以保留@IBOutlet引用,但删除弱子句可以避免编译器终止对UIImageView的引用
var imageView: UIImageView!