2016-10-16 10 views
5

मैं स्विफ्ट संकलक से इस त्रुटि का मतलब नहीं कर सकते करने के लिए अस्पष्ट संदर्भ:स्विफ्ट 3: त्रुटि: सदस्य '>'

enum MoveDirection { 
    case none 
    case left 
    case right 
} 

override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) { 
    guard let touch = touches.first else { 
     return; 
    } 

    let location = touch.location(in: humanPlayerScreen) 
    let previousLocation = touch.previousLocation(in: humanPlayerScreen) 

    let dx = location.x - previousLocation.x 
    let dy = location.y - previousLocation.y 
    let moveDirection = dx > 0 ? .right : .left // error 

    ... 
} 

मैं:

error: ambiguous reference to member '>' 
     let moveDirection = dx > 0 ? .right : .left 

यहाँ कोड है मैंने dx और 0 से CGFloat पर 0.0 का उपयोग करके कई चीजों की कोशिश की है, लेकिन उनमें से कोई भी अब तक काम नहीं कर रहा है।

क्या कोई समझा सकता है कि यह क्यों हो रहा है और इसे कैसे ठीक किया जाए?

पूर्ण त्रुटि संदेश:

Swift.>:5:13: note: found this candidate 
public func >(lhs: UInt8, rhs: UInt8) -> Bool 
      ^
Swift.>:5:13: note: found this candidate 
public func >(lhs: Int8, rhs: Int8) -> Bool 
      ^
Swift.>:5:13: note: found this candidate 
public func >(lhs: UInt16, rhs: UInt16) -> Bool 
      ^
Swift.>:5:13: note: found this candidate 
public func >(lhs: Int16, rhs: Int16) -> Bool 
      ^
Swift.>:5:13: note: found this candidate 
public func >(lhs: UInt32, rhs: UInt32) -> Bool 
      ^
Swift.>:5:13: note: found this candidate 
public func >(lhs: Int32, rhs: Int32) -> Bool 
      ^
Swift.>:5:13: note: found this candidate 
public func >(lhs: UInt64, rhs: UInt64) -> Bool 
      ^
Swift.>:5:13: note: found this candidate 
public func >(lhs: Int64, rhs: Int64) -> Bool 
      ^
Swift.>:5:13: note: found this candidate 
public func >(lhs: UInt, rhs: UInt) -> Bool 
      ^
Swift.>:5:13: note: found this candidate 
public func >(lhs: Int, rhs: Int) -> Bool 
      ^
Foundation.Date:95:24: note: found this candidate 
    public static func >(lhs: Date, rhs: Date) -> Bool 
        ^
Foundation.IndexPath:51:24: note: found this candidate 
    public static func >(lhs: IndexPath, rhs: IndexPath) -> Bool 
        ^
Foundation.IndexSet.Index:5:24: note: found this candidate 
    public static func >(lhs: IndexSet.Index, rhs: IndexSet.Index) -> Bool 
        ^
CoreMedia.>:1:13: note: found this candidate 
public func >(time1: CMTime, 

time2: CMTime) -> Bool 
      ^
Swift.>:10:13: note: found this candidate 
public func ><T : Comparable>(lhs: T, rhs: T) -> Bool 
      ^
Swift.>:1:13: note: found this candidate 
public func ><T : FloatingPoint>(lhs: T, rhs: T) -> Bool 
      ^
Swift.>:1:13: note: found this candidate 
public func ><T : _SwiftNewtypeWrapper where T.RawValue : Comparable>(lhs: T, rhs: T) -> Bool 
      ^
Swift.>:12:13: note: found this candidate 
public func ><A : Comparable, B : Comparable>(lhs: (A, B), rhs: (A, B)) -> Bool 
     ^
Swift.>:12:13: note: found this candidate 
public func ><A : Comparable, B : Comparable, C : Comparable>(lhs: (A, B, C), rhs: (A, B, C)) -> Bool 
      ^
Swift.>:12:13: note: found this candidate 
public func ><A : Comparable, B : Comparable, C : Comparable, D : Comparable>(lhs: (A, B, C, D), rhs: (A, B, C, D)) -> Bool 
      ^
Swift.>:12:13: note: found this candidate 
public func ><A : Comparable, B : Comparable, C : Comparable, D : Comparable, E : Comparable>(lhs: (A, B, C, D, E), rhs: (A, B, C, D, E)) -> Bool 
      ^
Swift.>:12:13: note: found this candidate 
public func ><A : Comparable, B : Comparable, C : Comparable, D : Comparable, E : Comparable, F : Comparable>(lhs: (A, B, C, D, E, F), rhs: (A, B, C, D, E, F)) -> Bool 
      ^
Swift.Comparable:158:24: note: found this candidate 
    public static func >(lhs: Self, rhs: Self) -> Bool 
        ^
Swift.LazyFilterIndex<Base>:7:24: note: found this candidate 
    public static func >(lhs: LazyFilterIndex<Base>, rhs: LazyFilterIndex<Base>) -> Bool 
        ^

उत्तर

7

त्रुटि संदेश भ्रामक है। समस्या यह है कि आप क्या .left और .right हैं के बारे में स्विफ्ट अधिक जानकारी देने की जरूरत है:

let moveDirection = dx > 0 ? MoveDirection.right : .left 

या

let moveDirection: MoveDirection = dx > 0 ? .right : .left 
+1

धन्यवाद! आशा है कि वे त्रुटि संदेश को ठीक करेंगे। – iosdude

संबंधित मुद्दे