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:
    [code language=”obj-c”]
    func functionTest(var param:String) {
    print(param)
    }
    [/code]
    Solution:
    [code language=”obj-c”]
    func functionTest(param:String) {
    print(param)
    }
    [/code]
    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:
    [code language=”obj-c”]
    btn.addTarget(self, action: "functionName", forControlEvents: UIControlEvents.TouchUpInside)
    [/code]
    OR
    [code language=”obj-c”]
    btn.addTarget(self, action: Selector("functionName"), forControlEvents: UIControlEvents.TouchUpInside)
    [/code]
    Solution:
    [code language=”obj-c”]
    btn.addTarget(self, action: #selector(ViewController.functionName), forControlEvents: UIControlEvents.TouchUpInside)
    [/code]
    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:
    [code language=”obj-c”]
    var i = 0
    for str in arrStr {
    print(str)
    i++
    }
    [/code]
    Solution:
    [code language=”obj-c”]
    var i = 0
    for str in arrStr {
    print(str)
    i += 1
    }
    [/code]
    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:
    [code language=”obj-c”]
    for var i=0; i<arrStr.count; i += 1 {
    print(arrStr[i])
    }
    [/code]
    Solution:
    [code language=”obj-c”]
    for i in 0 ..< arrStr.count {
    print(arrStr[i])
    }
    [/code]

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

    Warning with:
    [code language=”obj-c”]
    __FILE__
    [/code]
    Solution:
    [code language=”obj-c”]
    #file
    [/code]

More swift tutorials/articles are available here.
Happy Coding 🙂