小编Tok*_*Too的帖子

无法将Nil分配为AVCaptureDeviceInput类型

我已经尝试评论该线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

4
推荐指数
1
解决办法
6929
查看次数

++ 后增量运算符的替代方法?

我想在不使用 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)

post-increment swift

2
推荐指数
1
解决办法
2110
查看次数

无法将类型'<[AnyObject]>'的值转换为强制类型'NSArray'

我无法理解这一点.我尝试了不同的铸造变体,但似乎无法得到它.

    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)

swift

0
推荐指数
1
解决办法
5453
查看次数

标签 统计

swift ×3

post-increment ×1