我刚刚开始值得快速,所以答案可能就在我面前,但不幸的是我无法看到它。
我在附加的代码中出现错误,该代码显示'使用未声明的类型' line''
所以我想知道你们是否可以通过一些解释指出我正确的方向,这样我就能从错误中吸取教训。这是代码:
import UIKit
class DrawView: UIView {
var lines: [Line] = []
var lastPoint: CGPoint!
var drawColor = UIColor.blackColor()
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
self.lastPoint = (touches.anyObject() as UITouch).locationInView(self)
}
override func touchesMoved(touches: NSSet, withEvent event: UIEvent) {
var newPoint = (touches.anyObject() as UITouch).locationInView(self)
self.lines.append(Line(start: self.lastPoint, end: newPoint, color: self.drawColor))
self.lastPoint = newPoint
self.setNeedsDisplay()
}
override func drawRect(rect: CGRect) {
var context = UIGraphicsGetCurrentContext()
CGContextSetLineCap(context, kCGLineCapRound)
CGContextSetLineWidth(context, 3)
for line in self.lines {
CGContextBeginPath(context)
CGContextMoveToPoint(context, line.startX, line.startY)
CGContextAddLineToPoint(context, line.endX, line.endY)
CGContextSetStrokeColorWithColor(context, line.color.CGColor)
CGContextStrokePath(context)
}
}
}
答案 0 :(得分:1)
这部分代码给出了错误:
var lines: [Line] = []
它发生了,因为Line不是Swift类或类型(或实际上是任何东西),所以它不能在Array中。要让Line
被swift所知,你必须为它做一个课程。像这样:
class Line{
//your class code here
}
答案 1 :(得分:0)
var lines: [Line] = []
你的未申报类型,好吧。什么是线?斯威夫特不知道(如果涉及到这一点,我也不知道。)