ブックマーク / cocoadays.blogspot.com (3)

  • Cocoaの日々: [iOS] Keychain Services とは

    他アプリケーションが格納した Keychain Services 内の情報へのアクセス Mac OS X の場合はユーザが許可を与えれば他のアプリケーションの情報へアクセスすることができる。一方、iOS の場合、アプリケーションは自身が保存した情報のみアクセスが行える。他のアプリケーションの情報へは基的にアクセスすることができない。ただし同じプロビジョニングプロファイルを使ってビルドされたアプリは設定により情報を共有することができる(後述)。 iOS での特記事項 iOS には単一のキーチェーンのみ存在する(Mac OS X は複数)。 iOS の場合、PC接続時にストレージの内容は暗号化されたままバックアップされる。これを復号化するパスワード(keychain password)はバックアップされない(iOSデバイスの中から外に持ち出されない)。 Keychain Service はプ

    Cocoaの日々: [iOS] Keychain Services とは
    daiki_17
    daiki_17 2014/08/13
  • Cocoaの日々: CoreData - マイグレーションを考慮した CoreDataManager パターン

    CoreData を使うアプリであればこの程度の件数はすぐに行くので、起動時にマイグレーションが走ると確実に落ちてしまう。これを防ぐためには起動時に CoreData へアクセスさせないのが最低限の対策になるが、その場合でもユーザが CoreData へアクセスする操作を行った瞬間にマイグレーション処理に時間がかかって画面が固まったようになるのでユーザビリティは良くない。 マイグレーションを考慮したパターン よって CoreDataを使うアプリではマイグレーション用の画面を用意するのがベスト。処理フローはこんな感じ。 起動 ↓ (1)マイグレーションチェック もし必要なら、マイグレーション用の画面へ遷移し、(2)マイグレーション実行 ↓ 通常画面マイグレーションチェックは NSPersistentCoordinator を使えばわかる。 Cocoaの日々: [iOS][Mac] CoreD

    Cocoaの日々: CoreData - マイグレーションを考慮した CoreDataManager パターン
    daiki_17
    daiki_17 2014/07/09
  • Cocoaの日々: [iOS][Mac] CoreData - マイグレーション[4] モデルファイルの構成

    どのバージョンのモデルを使っているのか、またそれぞれのバージョンで使用しているエンティティのリストが格納されている。 なお、複数のバージョンが存在しない場合(一番最初のバージョンなど)は <modelname>.momd は存在せず、バンドルフォルダのルートレベルに <modelname>.mom ファイルが設置される。 (単一、複数で配置場所が変わることがバージョンアップ時の問題を引き起こす。問題の対応方法については前回の記事を参照のこと) トラブル 先日訳あってモデルファイル名を変更した。具体的には頭大文字を小文字にした。 HairConcierge.xcdatamodeld → hairConcierge.xcdatamodeldそれと同時にモデルファイルをバージョンアップし、マイグレーションの設定を行った。 この新しいバージョンのアプリをビルドして古いバージョンを上書きインストール

    daiki_17
    daiki_17 2014/07/09
  • 1