【Swift】swift3.0になってSyntax Converterで以前のバージョンのが直らない部分を書き直してみた
9/24 間違いもあったので書き直しました。少しずつ追記します。
変更点のメモということで。
コンバータで直ったかもしれないところも含めて。
//swift 3.0 let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.tapBlurButton(_:))) targetView.addGestureRecognizer(tapGesture) func tapBlurButton(_ sender: UITapGestureRecognizer) {} //それ以前 let tapGesture = UITapGestureRecognizer(target: self, action: #selector(ViewController.tapGesture(_:))) targetView.addGestureRecognizer(tapGesture) func tapGesture(sender: UITapGestureRecognizer){}
//swift 3.0 button.setImage(UIImage(named: ("name"), for: UIControlState) //それ以前 button.setImage(UIImage(named: ("name"), forState: UIControlState.Normal)
//swift 3.0 (これでいいのか自信ない) _ = self.navigationController?.popViewController(animated:false) //それ以前 self.navigationController?.popToRootViewController(animated: true)
Syntax Converterで直ったものは適当にメモ。
- アクセス修飾子にfileprivateとopenが追加された。ゆるい順にopen, public, internal, fileprivate, private。詳しくは
[Swift 3.0] アクセス修飾子にopenとfileprivateが追加された話 | Developers.IO
- userInteractionEnabledがisUserInteractionEnabledに変更
- let userDefaults = NSUserDefaults.standardUserDefaults()がlet userDefaults = UserDefaults.standardに変更
- let unarchive = NSKeyedUnarchiver.unarchiveObjectWithData(data)がlet unarchive = NSKeyedUnarchiver.unarchiveObject(with: data)に変更
- button.selected = trueがbutton.isSelectedに変更
- CGAffineTransformMakeTranslation(x, 0)がCGAffineTransform(translationX: x, y: 0)に変更
- scrollView.setContentOffset(CGPointMake(toX, 0), animated: true)がscrollView.setContentOffset(CGPoint(x: toX, y: 0), animated: true)に変更
- title = dictionary.objectForKey("title") as! Stringがtitle = dictionary.object(forKey: "title") as! Stringに変更
- aCoder.encodeObject(title!, forKey: "title")がaCoder.encode(title!, forKey: "title")に変更
- title = aDecoder.decodeObjectForKey("title") as? Stringがtitle = aDecoder.decodeObject(forKey: "title") as? Stringに変更
- mapView.setCenterCoordinate(center, animated: true)がmapView.setCenter(center, animated: true)に変更
- viewController.presentViewController(safariViewController, animated: true, completion: nil)がviewController.present(safariViewController, animated: true, completion: nil)
AlamofireやSnapKit、UITextFiledEffectsなど徐々に3.0対応してくれていて助かった〜。