- TOP>
- iOS Objective-C, Swift Tips
iOS Objective-C, Swift Tips
Appleから新言語Swiftが発表され、iPhoneアプリも以前より開発しやすくなった。Swiftは3.0に対応。コードはXcode 10.2で書き、iPhone 5s(iOS 12.0)、iPhone SE(iOS 11.4.1)、及びiPhone 8(iOS 12.2)等で動作を確認している。
秒速でSwift 5.0に対応中。
気付いたSwift 2.0の変更点
- Apple Developer Programに登録しなくても実機デバッグできるようになった!
- println→printに統合。デバッグに最適(とAppleは言っている)なdebugPrintが使えるように。
- printlnも含め、advance、sort等のグローバル関数が利用不可に。
- String.Indexに従前のadvance関数の代わりとなるadvancedByメソッドが追加。
- Arrayのソート関連メソッド名が変更された。
- 値が変更されない変数をvarで宣言しているとletで宣言するよう促される。
- Do-WhileがRepeat-Whileになってたり...
- Do-Catch、tryキーワードの追加等、エラーハンドリングの強化。
気付いたSwift 3.0の変更点
- CスタイルのFor文が削除された。
- StringのString.Index周りが変更に。
- Arrayのソート関連メソッド名が再度変更された。
- ++演算子、及び--演算子が削除された。
- NSDate→Date、NSDateFormatter→DateFormatterに変更等。
- 関数の最初の引数も"_"を付加して宣言しなければ呼出し時に引数ラベルが必要となった。
気付いたSwift 4.0の変更点
- Stringにcountプロパティが追加され、prefix、suffix等のメソッドが使えるようになった。
気付いたSwift 5.0の変更点
| GPSから位置情報を取得する | CLLocationManager, CLLocationManagerDelegate | Objective-C |
| Map Viewで地図を表示する | MKMapView | Objective-C |
| Web ViewでWebページを表示する | UIWebView, NSURLRequest, NSURL | Objective-C |
| ピンチイン/ピンチアウトで画像を拡大/縮小 | UIScrollView, UIImageView, UIScrollViewDelegate | Objective-C |
| ボタンが押されたらメッセージを表示 | UIButton, UIAlertView | Objective-C |
| 文字列と数値の変換(Swift) | String, Int, Double, integerValue, doubleValue | Swift3 |
| Dictionaryの初期化と追加、削除(Swift) | Dictionary | Swift |
| 配列に整数のインデックスを付ける(Swift) | enumerated | Swift3 |
| 配列の初期化と追加、削除(Swift) | Array | Swift3 |
| 配列をソートする(Swift) | Array, sort, sorted | Swift3 |
| Stringでフォーマット(Swift) | NSString | Swift |
| Stringの連結と補間(Swift) | \() | Swift |
| 大文字小文字の区別なく文字列を比較する(Swift) | caseInsensitiveCompare, lowercased, uppercased, localizedCaseInsensitiveCompare | Swift3 |
| 文字列を分割する(Swift) | split, components | Swift4 |
| 文字列を検索する(Swift) | range | Swift3 |
| 正規表現による文字列の抽出(Swift) | NSRegularExpression, NSTextCheckingResult | Swift4 |
| 部分文字列の取得(Swift) | prefix, suffix, index, [], String.Index | Swift5 |
| For文(Swift) | for-in, 制御文 | Swift3 |
| Guard文(Swift) | guard, 制御文 | Swift |
| If文(Swift) | if, 制御文 | Swift |
| Switch文(Swift) | switch, fallthrough, break, 制御文 | Swift |
| tryキーワードによるエラーハンドリング(Swift) | do-catch, try, try?, try! | Swift3 |
| While文(Swift) | while, repeat-while, 制御文 | Swift4 |
| ネストが深いループから一気に抜け出す(Swift) | ラベル付きステートメント, break, 制御文 | Swift |
| printで改行させない(Swift) | print | Swift |
| ログ出力(Swift) | print, debugPrint, NSLog | Swift |
| クロージャ(Swift) | クロージャ | Swift3 |
| 関数(Swift) | func | Swift3 |
| クラス(Swift) | class | Swift |
| ウィンドウの階層構造を3D表示する(Swift) | Viewの階層構造 | Swift |
| HTTP GETとPOST(Swift) | URLRequest, URLSession | Swift4 |
| ファイルアップロード(Swift) | URLRequest, URLSession, Data | Swift4 |
| 日付の取得とフォーマット(Swift) | Date, DateFormatter | Swift3 |
| Interface Builderで3D Touch(Peek & Pop)を実装する(Swift) | 3D Touch | Swift |
| iOS 8以降で使えるUIAlertController(Swift) | UIAlertController | Swift3 |
| iOS 8以降で使えるWKWebViewでWebページを表示する(Swift) | WKWebView, WKNavigationDelegate | Swift3 |
| iOS 9以降で使えるSFSafariViewControllerでWebページを表示する(Swift) | SFSafariViewController, SFSafariViewControllerDelegate | Swift3 |
| iOSのバージョン判定(Swift) | UIDevice, #available | Swift |
| UIWebViewでWebページを表示する(Swift) | UIWebView, UIWebViewDelegate | Swift3 |
| View Controllerを3D Touchに対応させる(Swift) | UIViewController, UIViewControllerPreviewingDelegate, 3D Touch | Swift |
| Web Viewで3D Touchによるプレビュー(Peek)を実装する(Swift) | UIWebView, WKWebView, allowsLinkPreview, 3D Touch | Swift |
| Web Viewでhttpのサイトが表示されない(Swift) | UIWebView, WKWebView, ATS | Swift |
| アプリアイコンにバッジを表示(Swift) | UIApplication | Swift |
| ブラウザを開く(Swift) | UIApplication | Swift4 |
| ボタンが押されたらメッセージを表示(Swift) | UIButton, UIAlertView | Swift |
| ボタンの角を丸くする(Swift) | UIButton | Swift |
| UIImagePickerControllerの表示を日本語にする(Swift) | UIImagePickerController | Swift |
| カメラの利用(AVFoundation)(Swift) | AVCaptureSession, AVCaptureVideoPreviewLayer | Swift4 |
| カメラの利用(UIImagePickerController)(Swift) | UIImagePickerController, UIImagePickerControllerDelegate, UINavigationControllerDelegate | Swift4 |
| 画像の向きを指定して保存する(Swift) | UIImage, UIImageOrientation | Swift |
| GPSから位置情報を取得する(Swift) | CLLocationManager, CLLocationManagerDelegate | Swift4 |
| Map Viewで地図を表示する(Swift) | MKMapView | Swift |
| ジオコーディング(Swift) | CLGeocoder | Swift4 |
| Google Mapsを起動する(Swift) | UIApplication | Swift4 |
Copyright© 2004-2019 モバイル開発系(K) All rights reserved.
|