Swift 2.2 Warnings and It’s Solutions – Xcode 7.3

apple_swift_logo

Xcode 7.3 came with Swift 2.2 Version. I just updated to Xcode 7.3 and found following warnings because of Swift version change.

List of warnings with it’s solution:

  1. ‘var’ parameters are deprecated and will be removed in Swift 3
  2. Warning Function Var
    Warning Function Var

    Warning with:

    func functionTest(var param:String) {
    	print(param)
    }
    

    Solution:

    func functionTest(param:String) {
    	print(param)
    }
    

    If you want to update that variable inside the function then you have to create copy of that variable to do operations on that.

  3. Use of string literal for Objective-C selectors is deprecated; use ‘#selector’ instead
  4. Warning Selector
    Warning Selector

    Warning with:

    btn.addTarget(self, action: "functionName", forControlEvents: UIControlEvents.TouchUpInside)
    

    OR

    btn.addTarget(self, action: Selector("functionName"), forControlEvents: UIControlEvents.TouchUpInside)
    

    Solution:

    btn.addTarget(self, action: #selector(ViewController.functionName), forControlEvents: UIControlEvents.TouchUpInside)
    

    Apple Documentation : Added information about the #selector syntax for Objective-C selectors to the Selector Expression section.

  5. ‘++’ is deprecated: it will be removed in Swift 3
  6. Warning ++
    Warning ++

    Warning with:

    var i = 0
            
    for str in arrStr {
    	print(str)
    	i++
    }
    

    Solution:

    var i = 0
            
    for str in arrStr {
    	print(str)
    	i += 1
    }
    

    Apple Documentation : Removed discussion of C-style for loops, the ++ prefix and postfix operators, and the — prefix and postfix operators.

  7. C-style for statement is deprecated and will be removed in a future version of Swift
  8. Warning For Statement
    Warning For Statement

    Warning with:

    for var i=0; i<arrStr.count; i += 1 {
    	print(arrStr[i])
    }
    

    Solution:

    for i in 0 ..< arrStr.count {
    	print(arrStr[i])
    }
    

  9. __FILE__ is deprecated and will be removed in Swift 3, please use #file
  10. Warning __FILE__
    Warning __FILE__

    Warning with:

    __FILE__
    

    Solution:

    #file
    

More swift tutorials/articles are available here.

Happy Coding đŸ™‚