Swiftの覚書1
公開日:
:
最終更新日:2014/08/09
iPhone App 開発, Swift iPhone App, Swift
Swift
先日、Appleから新言語Swiftが発表されました。
今までiOSアプリで開発していたObjective-Cから移行しそうな勢いなので、XcodeのBeta版をインストールして勉強しています。
Xcode Beta版やiOS8ダウンロードはこちらのページから。
https://developer.apple.com/devcenter/ios/index.action
Swiftに関するドキュメントはiBooksからも公開されています。
https://itunes.apple.com/us/book/swift-programming-language/id881256329?mt=11
以下、テストプログラムを作成中のときに気づいたことを覚書に。
遅延初期化
次のコードはCoreDataのsqliteファイルを読み込む処理です。
lazy var persistentStoreCoordinator: NSPersistentStoreCoordinator? = {
var coordinator: NSPersistentStoreCoordinator? = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)
let url = self.applicationDocumentsDirectory.URLByAppendingPathComponent(“MasterDetailTest.sqlite”)
// 以下略
return coordinator
}()
lazyとは遅延プロパティ(インスタンスを生成した際は処理されずに変数アクセス時にコールされる)とのこと。
A lazy stored property is a property whose initial value is not calculated until the first time it is used. You indicate a lazy stored property by writing the
lazy
modifier before its declaration.
Objective-Cでは
if (_persistentStoreCoordinator != nil) {
return_persistentStoreCoordinator;
}
という記述が必要でしたが、変数のアクセス時にnilチェックがいらないってことですごく便利です。
sqliteの格納場所
CoreDataを使ったアプリ作成の際に、いままでの格納フォルダが変更されていました。
正式版リリースでは元に戻るのかな?
以前の場所
Users/ユーザー/Library/Application Support/iPhone Simulator/iOSのバージョン/Applications/ランダムな識別子/Documents/
変更後
Users/ユーザー/Library/Developer/CoreSimulator/Devices/ランダムな識別子/data/Containers/Data/Application/ランダムな識別子/Documents/
以下の関数でアプリケーションURLが取得できます。
[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]
また何かあれば追記していきます。
ad
関連記事
-
-
NSDateを5分刻み・15分刻みで丸める
NsDateを初期値としてUIDatePicker等に設定する場合、日付の丸め処理が必要になるのでメ
-
-
[Swift] frameworkについて
先日、Swiftで実装されたライブラリをまとめたサイトを発見しました。 Swift Toolb
-
-
Xcode5のstoryboard内でUIKeyCommandエラーの対処法
既存のプロジェクトからstoryboardにあるオブジェクトをコピペして、新規プロジェクトに貼付けた
-
-
[Swift] CoreDataのテーブルからデータ件数を取得する
件数を取得する fetchResultsControllerなどを使わず、直接テーブルのデータ件数
-
-
[Swift] プロパティリスト(plist)を使ってCoreDataで一括登録する
プロパティリストを使う 初期データやあらかじめ用意したデータを一括登録したい場合、プロパティリスト
-
-
[iPhone App] WorkManagerの不具合について
バージョン1.2.2の不具合 11/25日現在、iPhoneアプリの「WorkManger」バージ
-
-
[Swift] 画像を合成する
画像を合成 以下の2つの画像を合成してみます。円と四角です。 画像をプロジェクトに追
-
-
[Objective-C] デリゲート (Delegate)を理解する!
デリゲートとは? デリゲートに関しての意味合いとして、”委譲”とか”代理”と説明されることが多いで
-
-
[Swift] Swiftでいろんなfor文まとめてみた
いろんなfor文 プログラム作成で必ず出てくるfor文を自分なりにまとめてみました。 Swift