0

我收到错误

fatal error: Can't unwrap Optional.None
(lldb)

使用此代码

    var context:CGContextRef = UIGraphicsGetCurrentContext()
    let radius:CGFloat = 5
    CGContextSetRGBStrokeColor(context, 1, 1, 1, 1)
    var tempRect:CGRect = CGRectMake(5, 5, 20, 20)
    let minX = tempRect.minX, midX = tempRect.midX, maxX = tempRect.maxX
    let minY = tempRect.minY, midY = tempRect.midY, maxY = tempRect.maxY
    CGContextMoveToPoint(context, minX, minY)
    CGContextAddArcToPoint(context, minX, minY, midX, midY, radius)
    CGContextAddArcToPoint(context, maxX, minY, maxX, midY, radius)
    CGContextAddArcToPoint(context, maxX, maxY, midX, maxY, radius)
    CGContextAddArcToPoint(context, minX, maxY, minX, midY, radius)
    CGContextClosePath(context)
    CGContextDrawPath(context, kCGPathFillStroke)

我不明白问题是什么。我想做的是在 Swift 中创建一个带圆角的矩形。为什么我会收到此错误,是否有更简单的方法可以做到这一点?

4

1 回答 1

0

问题是没有当前上下文。因此UIGraphicsGetCurrentContext()想返回NULL(nil)。在继续之前,您应该context先进行条件测试。

此外,您应该键入contexta CGContext!,因为这是UIGraphicsGetCurrentContext()返回的内容 - 上下文或 nil,包含在 Optional 中,隐式展开。因此,当您获得上下文时,您将能够使用它而无需在任何地方使用问号。更好的是,根本不要给它显式类型;Swift 比你更了解UIGraphicsGetCurrentContext()回报。

于 2014-06-12T21:24:04.833 回答