我已经尝试评论该线deviceInput = nil 仅用于测试,但有其他错误.此代码存在于其他在线示例中,因此我不确定这里发生了什么.
private func captureSetup (position : AVCaptureDevicePosition) {
var captureError : NSError?
var captureDevice : AVCaptureDevice!
for testedDevice in AVCaptureDevice.devicesWithMediaType(AVMediaTypeVideo){
if (testedDevice.position == position) {
captureDevice = testedDevice as! AVCaptureDevice
}
}
if (captureDevice == nil) {
captureDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
}
var deviceInput : AVCaptureDeviceInput
do {
deviceInput = try AVCaptureDeviceInput(device: captureDevice)
} catch let error as NSError {
captureError = error
deviceInput = nil // Nil cannot be assigned to type AVCaptureDeviceInput
if captureError != …Run Code Online (Sandbox Code Playgroud) 我想在不使用 Swift 中的遗留 ++ 的情况下重构这种合并排序。
当使用实例方法和多个级别在更复杂的语句中使用一元运算符时,我会遇到逻辑问题。
你不能简单地切换++到,+=1因为你会得到一个Cannot subscript a value of type '[Int]' with an index of type '()'错误。
那么我应该创建一个新的可变副本 var 然后增加那个 var 吗?即使没有错误检查,我也可以使用 guard 重构这个块吗?无意义?
if (hidariCount < hidari.count && (migiCount >= migi.count || hidari[hidariCount] <= migi[migiCount])) {
sortedArray.append(hidari[hidariCount++])
} else if (migiCount < migi.count && (hidariCount >= hidari.count || migi[migiCount] < hidari[hidariCount])) {
sortedArray.append(migi[migiCount++])
}
Run Code Online (Sandbox Code Playgroud) 我无法理解这一点.我尝试了不同的铸造变体,但似乎无法得到它.
var tArray : NSArray = tempArr2 as NSArray
memoArray = tArray.mutableCopy() as! NSMutableArray
Run Code Online (Sandbox Code Playgroud)
完整的错误消息是:
无法将'ReverseRandomAccessCollection <[AnyObject]>'(又名'ReverseRandomAccessCollection>')类型的值转换为强制类型'NSArray'
这是整个块,虽然我不认为它会有所作为,因为错误只与这种投射方法有关.
var tempArr : Array = memoArray as Array
print("beforeReverse=\(tempArr)")
var tempArr2 = tempArr.reverse()
print("afterReverse=\(tempArr2)")
var tArray : NSArray = tempArr2 as NSArray // <----- error
memoArray = tArray.mutableCopy() as! NSMutableArray
memoArray.addObject(memoDictionary)
tempArr = memoArray as Array
print("beforeReverse=\(tempArr)")
tempArr2 = tempArr.reverse()
print("afterReverse=\(tempArr2)")
tArray = tempArr2 as NSArray // <----- error
memoArray = tArray.mutableCopy() as! NSMutableArray
Run Code Online (Sandbox Code Playgroud)