タグ

CoreDataに関するBowz13のブックマーク (32)

  • Objective-Cのアクセサの話 : As Sloth As Possible

    scrollView.canCancelContentTouches = NO; [scrollView setCanCancelContentTouches:NO]; って書き方があってこれみんなどういう使い分けしてるんだろうなぁ。。って思ってます。 セッター - poohtarouの日記 セッターというか、ドット記法の話かな。 ドット記法と普通のメソッドの使い分け まぁ、まずはこんなクラスがあったとします。 @interface Book : NSObject { NSObject *title; } @property (retain) NSString *title; @end このクラスのオブジェクトを作ってtitleを設定/参照するコードはこんな感じです。 Book *book = [[Book alloc] init]; // ドット記法 book.title = @"Dyn

    Objective-Cのアクセサの話 : As Sloth As Possible
    Bowz13
    Bowz13 2013/07/26
    KVCについて参考にした。
  • 画像を含むCoreDataのフェッチ速度を改善する - blog.ishkawa.org

    LRUなディスクキャッシュを実装する場合など、CoreDataに画像を突っ込みたくなることがあると思います。 しかし、画像をそのままattributesに突っ込むことはフェッチ速度の低下につながります。 何か上手い方法はないかな〜と思ってAppleのCoreDataプログラミングガイドを眺めていたら、ありました。 画像などのBLOBをCoreDataに突っ込む場合、BLOBであるattributeをエンティティから切り離すと良いそうです。 今回は、これについて検証したことを紹介します。 比較するデータ構造 ISFatUser attributesに画像が突っ込まれたエンティティです。 BLOBが入っているので”Fat”です。 ISUser 画像を別のエンティティに切り分けたエンティティです。 attributesに画像を持たない代わりに、画像を持つエンティティ(ISIcon)とrelat

  • CoreData - Object ID(その5)情報

    ▼ 2010 (165) ▼ 6月 (13) サイトをリニューアルしました CoreData - トランザクション(5) まとめ CoreData - トランザクション(4) reset CoreData - トランザクション(3) undo と redo CoreData - トランザクション(2) rollback CoreData - トランザクション(1) 準備 カテゴリでクラスメソッド定義 今週のCocoa情報(6/6) - 今週気になった Cocoaプログラミング情報の紹介 CoreData - Object ID(その5)情報 CoreData - Object ID(その4)Object ID から NSManagedObj... CoreData - Object ID(その3)Object ID から NSManagedObj... CoreData - Object

  • CoreData - Object ID(その4)Object ID から NSManagedObject を取得する #2

    MacOSXプログラミング。毎日更新。 話題: Cocoa, Objective-C, Snow Leopard (前回)Cocoaの日々: CoreData - Object ID(その3)Object ID から NSManagedObject を取得する Object ID から NSManagedObject を取得するメソッドは、前回の -[objectWithID:] を含め3つある。 クラス:NSManagedObjectContext - (NSManagedObject *)objectWithID:(NSManagedObjectID * - (NSManagedObject *)objectRegisteredForID:(NSManagedObjectID *)objectID - (NSManagedObject *)existingObjectWithID:(N

  • CoreData - Object ID(その3)Object ID から NSManagedObject を取得する

    Object ID の URI から NSMangedObject を取得することができる。ステップは2つ。 (1) -[NSPersistentStoreCoordinator managedObjectIDForURIRepresentation:] を使い、NSManagedObjectID を取得する (2) -[NSManagedObjectContext objectWithID:] に(1)の結果を渡し、NSManagedObject を取得する。 NSPersistentStoreCoordinator Class Reference - managedObjectIDForURIRepresentation: NSManagedObjectContext Class Reference - objectWithID: やてみよう。 サンプル:

    CoreData - Object ID(その3)Object ID から NSManagedObject を取得する
  • CoreData - Object ID(その2)モデルのバージョンを変える

    モデルのバージョンを変えると Object ID は変化するのか?試してみた。 バージョンを追加後(v2)、createdを追加した。 マッピングモデルを追加し、現在のバージョンを先程追加したもの(v2)に設定する。 (参考)Cocoaの日々: CoreData - マイグレーション ビルド後に実行してみる。 (なお実行時にエラーが出る場合は、クリーニングしたのち再ビルドすると良い)。 結果は変わらず。これはまあ当然か。 1レコード追加してみる。 UUIDの部分(677CA547-...)は変わらないようだ。モデルのバージョンによって変化しないことがわかった。 SQLite DB の中身。 sqlite> select * from z_metadata; 1|677CA547-4D80-417A-8810-70847FB0375D|bplist00?

    CoreData - Object ID(その2)モデルのバージョンを変える
  • CoreData - Object ID(その1)NSManagedObjectID

    MacOSXプログラミング。毎日更新。 話題: Cocoa, Objective-C, Snow Leopard NSManagedObject の Object ID NSManagedObjectには、オブジェクトを一意に識別する為にObject ID割り振られている。この ID は NSManagedObjectID型として定義されていて、-[NSManagedObject objectID] で取得できる。 NSManagedObject Class Reference - objectID NSManagedObjectID このNSManagedObjectIDは次のメソッドを持っている。 - (NSEntityDescription *)entity - (BOOL)isTemporaryID - (NSPersistentStore *)persistentStore -

  • GitHub - magicalpanda/MagicalRecord: Super Awesome Easy Fetching for Core Data!

    MagicalRecord In software engineering, the active record pattern is a design pattern found in software that stores its data in relational databases. It was named by Martin Fowler in his book Patterns of Enterprise Application Architecture. The interface to such an object would include functions such as Insert, Update, and Delete, plus properties that correspond more-or-less directly to the columns

    GitHub - magicalpanda/MagicalRecord: Super Awesome Easy Fetching for Core Data!
    Bowz13
    Bowz13 2013/07/25
    CoreDataのライブラリ
  • Core Data 勉強日記 (11):More iPhone 3 Development / chapter 7 (関連/Relationship) | Natsu note

    HOME » Natsu note » 古い投稿 » Core Data 勉強日記 (11):More iPhone 3 Development / chapter 7 (関連/Relationship) Core Data 勉強日記 (11):More iPhone 3 Development / chapter 7 (関連/Relationship) 2010/02/24/|古い投稿|Core Data More iPhone 3 Development: Tackling iPhone SDK 3 (Beginning) Chapter 7 のまとめ。 最終章は、関連(Relationship)、取得済みプロパティ(Fetched property)について。さらに、流用がしやすいように汎用的なViewControllerの設計について考える。内容が多いので、まずはRelations

    Bowz13
    Bowz13 2013/07/24
    無効にする/Nullify。アクションなし/No Action。カスケード/Cascade。拒否/Deny。
  • Core Data | Natsu note

    この記事は情報が古い可能性があります。参照する際にはご注意ください。 Core Data のパフォーマンスを良くするためのテクニックはいくつか存在するが、その中でも重要だと思われるバイナリデータの扱いについて記載されている書籍を見つけたので参考までにまとめておく。 Core Data: Apple’s API for Persisting Data on Mac OS X (リンク Amazon) の6章に分かりやすい解説があった。ただし、このは主にOSX用に書かれたものなので、目安となるバイト数はiPhoneOSでは少し変わってくるかもしれない。それでも三通りの方法を使い分ける … この記事は情報が古い可能性があります。参照する際にはご注意ください。 Core Dataのデータをフェッチするとき、特定の条件を指定したければNSPredicateを使う。NSPredicateは、Core

    Bowz13
    Bowz13 2013/07/24
    参考にしたサイト
  • SSSSLIDE

    SSSSLIDE
  • Study CoreData 3 ~デルモに手を出すなら慎重に…~

    大変な事に、この『Study CoreData』もすでに4エントリ目になりました。 しかも、まだ独自のデーターベース作成に一歩も入っていない始末…。 ですが、まず理解する事でこれからの作業が分かりやすくなる(はず?)です!! ってことで、引き続きデフォルトで作成されたプロジェクトを検証していきます。 前回までのエントリでコードとして書かれている核の部分はある程度理解できたと思うことにして^^; 今回は、 どのように<NSManagedObjectModel>(データの設計図)が作られるのか を見ていくことにします。 それでは、今まで見てきた『TodoCoreプロジェクト』を開きましょう。 注意:投稿者自身もCoraDataについて勉強中のため、このシリーズには誤りが含まれている可能性があります。もし、間違いに気付かれた方はコメント欄もしくはtwitterなどでご指摘いただけると幸いです<(

    Study CoreData 3 ~デルモに手を出すなら慎重に…~
  • A-Liaison BLOG: Core Data のパフォーマンスをちょっとだけ調べてみた

    ちょっと仕事で触ってみて分かった範囲のことを書きます。断りがない限り、 iPhone 3GS で Wifi 接続環境下においてテストしました。 ■キャッシュ無し vs キャッシュ有り executeFetchRequest:error: メソッドを用いて、 Entityのプロパティで一件だけ絞り込んで返すようなクエリは大変遅いということが分かりました。Indexを付けて実行してもほとんど速くなりません。どうやらそもそもバックエンドに使っているSqliteが大変遅い、特にコネクションを生成したり破棄したりするのが遅い感じがするので、ループで一件ずつ取得するなどのときはたくさんのSQLが実行されないようにする必要があります。 objectWithID: メソッドは試していないのでちょっと不明です。 回避策として、アプリが起動したタイミングで当該エンティティの全オブジェクトをあらかじめ取ってきて

  • iPhone版LINEのデータ構造 : Core data in LINE « NAVER Engineers' Blog

    こんにちは。検索サービス開発4チームでメッセージアプリのLINEiPhoneアプリ開発を 担当している金泰敬(キム テギョン)です。 今回説明させて頂きたい主題はLINEのモデル側を支えているCore Dataです。 Core Dataは、MacOS XのベースFrameworkであるCocoaのMVC構造のうち、 Model側を担当しているFrameworkです。 Core Dataを利用するとデータモデルの設計、オブジェクトのデータの読み取り、書き込み、管理などを簡単に行うことができます。 現在、LINEではCore Dataを利用してメッセージ、トーク、グループ、ユーザーなどを管理しています。 例えば、相手のメッセージが到着するとまずコアのデータからSqliteDBに格納します。 そして保存されたメッセージに関連しているトークでも更新が行われます。 もしそのメッセージが

  • CoreDataに大量のデータを追加する | エンジニア開発記

    CoreDataに大量のデータを追加するとき、メモリに気をつけてあげないとすぐメモリ不足になってしまいます。 しかし、CoreDataのManagedObjectは解放したいと思ったタイミングではなかなか解放してくれません。 メモリ解放するにはちょっとした手順が必要となります。 新しくManagedObjectContextを作る ManagedObjectをひとつ追加→保存する ManagedObjectContextのresetを呼ぶ(メモリ強制開放) 2〜3を必要なだけ繰り返す 他のManagedObjectContextで作ったManagedObjectに保存結果をマージする ちなみに、大量のデータを変更・処理する時なども手順は同じです。 新しくManagedObjectContextを作る まず、新しくManagedObjectContextが必要になります。 なぜ新しいのが必要

    Bowz13
    Bowz13 2013/07/24
    NSManagedObjectContextの内容をリセットする
  • CoreData - トランザクション(4) reset

    -[NSManagedObjectContext reset] を試す。 コードを追加し、 - (IBAction)resetAction:sender{ [self.managedObjectContext reset];} ボタンに紐づける。 実行。resetボタンを押すと、 データが消える。 これは NSManagedObjectContext(メモリ)上のデータが消えただけで、ディスク上のデータは残っている。 試しに reload ボタンを追加する。 ボタンが押されたら、NSArrayController を使っているので prepareContent を投げてみる。 - (IBAction)reloadAction:sender{ [arrayController prepareContent];} すると reset で一旦消えた後、 reloadボタンで復活。

    CoreData - トランザクション(4) reset
    Bowz13
    Bowz13 2013/07/24
    "- (void)reset"するとそれまでに読み込まれた NSManagedObjectがすべて開放される。用途としては NSMangedObjectContext のインスタンスを別の用途で使いまわす場合の初期化に使用することが考えられる。
  • Study CoreData 1 ~時をさかのぼる 前編~

    さて、CoreData Study 第二回目です! 今回は、Xcodeで自動生成されたCoreDataの処理内容をざくっと見ていくことにしましょうか。 ってコトで、いきなり題に入ります。 まずは起動時にどのような処理が行われているかを見てみましょう。 こういった初めて見るコードがどのように繋がっているのかを調べていくには、時間軸をさかのぼってコードを見ていくのが分かりやすいんじゃないかなぁと思います。 なので、まずはUITableViewのCellを生成しているメソッドから見ていくことにします。 注意:投稿者自身もCoraDataについて勉強中のため、このシリーズには誤りが含まれている可能性があります。もし、間違いに気付かれた方はコメント欄もしくはtwitterなどでご指摘いただけると幸いです<(_ _)> また、開発環境はXcode3.2.3 iPhone SDK 4です。実機でのテス

    Study CoreData 1 ~時をさかのぼる 前編~
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    Bowz13
    Bowz13 2013/07/23
    マイグレーションが便利、NSFetchedResultsController が便利、fetchBatchSize が便利
  • iphone- core data error 'NSInvalidArgumentException', reason: 'Unimplemented SQL generation for predicate'

    I am new to iphone development. I am trying to store some data using iphone core data. when i try to save i am getting error like. Detected an attempt to call a symbol in system libraries that is not present on the _Unwind_Resume called from function -[NSSQLAdapter _newSelectStatementWithFetchRequest:ignoreInheritance:] in image CoreData. 2012-05-28 12:05:38.179 FYPV1[6460:207] *** Terminating app

    iphone- core data error 'NSInvalidArgumentException', reason: 'Unimplemented SQL generation for predicate'
  • Study CoreData 5 ~まだまだ序盤~

    みなさん、おはこんちわんばんこ! iPhoneSDKに取り付かれたオトコ、Jacminikです。 あらためて確認しておきますが、このシリーズの目的は 最低限アプリとして使えるような構造の CoreDataの利用ができるようになること。 つまり、 『AppStoreに並べてもいいかも?(無料なら) ってくらいの”CoreDataを使ったTodoアプリ”を完成させる!』 ってことです。 しかも、それを僕のような”CoreDataビギナー”がやるってんだから、 そりゃ大変!!(笑) まぁ、まだまだ実際のTodoアプリ作成には手を付けられていないですが、 ちゃんと目標を見据えて地道にやって行くことにしましょうね。 ってことで『Study CoreData』第5回です! 注意:投稿者自身もCoraDataについて勉強中のため、このシリーズには誤りが含まれている可能性があります。もし、間違いに気付かれ

    Study CoreData 5 ~まだまだ序盤~
    Bowz13
    Bowz13 2013/07/22
    CoreDataのソート記述について参考にした。