“变种”参数被取消,并将在斯威夫特3的UIImage被删除的Gif

问题描述:

我刚更新的Xcode 7.3,现在我得到这样的警告:“变种”参数被取消,并将在斯威夫特3的UIImage被删除的Gif

“变种”参数被取消,并将在斯威夫特3被移除

我需要使用var在这个函数:

class func gcdForPair(var a: Int?, var _ b: Int?) -> Int { 
    // Check if one of them is nil 
    if b == nil || a == nil { 
     if b != nil { 
      return b! 
     } else if a != nil { 
      return a! 
     } else { 
      return 0 
     } 
    } 

    // Swap for modulo 
    if a < b { 
     let c = a 
     a = b 
     b = c 
    } 

    // Get greatest common divisor 
    var rest: Int 
    while true { 
     rest = a! % b! 

     if rest == 0 { 
      return b! // Found it 
     } else { 
      a = b 
      b = rest 
     } 
    } 
} 

更新:我已经重述我的答案,因为我想你其实想inout,但你不知道。所以...

的动机可以找到here。 tl; dr是:varinout混淆,并没有增加太多的价值,所以摆脱它。

因此:

func myFunc(var a: Int) { 
    .... 
} 

变为:

func myFunc(a: Int) { 
    var a = a 
    .... 
} 

因此您的代码将变成:

class func gcdForPair(a: Int?, _ b: Int?) -> Int { 
    var a = a 
    var b = b 
    // Check if one of them is nil 
    if b == nil || a == nil { 
     if b != nil { 
      return b! 
     } else if a != nil { 
      return a! 
     } else { 
      return 0 
     } 
    } 

    // Swap for modulo 
    if a < b { 
     let c = a 
     a = b 
     b = c 
    } 

    // Get greatest common divisor 
    var rest: Int 
    while true { 
     rest = a! % b! 

     if rest == 0 { 
      return b! // Found it 
     } else { 
      a = b 
      b = rest 
     } 
    } 
} 
+0

我尝试,但同样的问题 HTTP://i.imgur .com/WSggY1Z.png –

+0

至少你解决了我的脑冻结问题,我用'let'代替'var'。但是,在函数定义中没有'a:'。这是什么原因导致你的问题? – Michael

+0

不管它在那里,但问题是修复程序告诉我要删除它! ,并且在功能上没有变化oO –