二元运算符&#39;&gt; =&#39;不能应用于类型的操作数&#39; (UnsafePointer <int8>,Int32) - &gt; UnsafeMutablePointer <INT8>&#39;和&#39; Int&#39;

时间:2016-02-25 19:41:18

标签: swift

我正在尝试使用for循环遍历优先级队列

测试用例就像这样

var i = 2
for item in queue {
    assert(item == i--)
}

我已将此原始PriorityQueue扩展为

extension PriorityQueue {
    private func getItemsInPriorityOrder() -> [I] {
        if !isSorted {
            isSorted = true
            queue.sortInPlace{
                return ($0 == nil) ? true  :
                       ($1 == nil) ? false :
                            $0.priority > $1.priority
            }
        }
        var items: [I] = []
        for i in 1..<queue.count {
            items.append( queue[i].item)
        }
        return items
    }
}

extension PriorityQueue: SequenceType {
    public func generate() -> _PriorityQueueIterator<I> {
        return _PriorityQueueIterator<I>(items: getItemsInPriorityOrder())
    }
}

public struct _PriorityQueueIterator <I> : GeneratorType {
    private let items: [I]
    private var intex = 0

    init(items: [I]){
       self.items = items
    } 

    public mutating func next() -> I? {
       return index  >=  items.count ? nil : items[index++] // this giving the error
     }
} 

我的回复陈述return index >= items.count ? nil : items[index++] 给出以下错误

error message

我没有明确声明类型Int8Int16Int32

的任何内容

1 个答案:

答案 0 :(得分:1)

您的属性名为intex(请注意拼写错误),因此函数中的index指的是一个恰好是名为index的函数的其他符号。