タグ

2010年11月19日のブックマーク (9件)

  • Cocoaの日々: Core Data

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

    Cocoaの日々: Core Data
    watanata2000
    watanata2000 2010/11/19
    Core Data 知識 いろいろ Instruments の使い方も説明ある
  • Cocoaの日々: Core Data - 最大値を取得する

    Core Data に格納されたデータの中から特定の属性値が最大値を取得したい。 SQL だと SELECT MAX(timeStamp) FROM Book;と、たった一行で簡単に取得できるが Core Data ではどうか? 前提 こんなエンティティがあったとする。 この属性値 timeStamp の最大値(すなわち最も最近の日時)を取得するメソッドを用意する。またこのメソッドは絞り込みの条件として Author(NSManagedObjectのサブクラス)を渡すことができる。 コード見 こんな感じ。 - (Book*)lastTimeStampOfAuthor:(Author*)author { NSManagedObjectContext* moc = self.managedObjectContext; NSFetchRequest* request = [[NSFetchRe

    Cocoaの日々: Core Data - 最大値を取得する
    watanata2000
    watanata2000 2010/11/19
    最大値 max select max(*)
  • Xcodeの静的アナライザ - アールケー開発

    ※ソースコードの整形表示を行うWPのプラグインの負荷が大きかったため、プラグインを使わずにテキストにしています。そのため、表示が崩れてしまっています(インデントがない)。ソースをよく見たい方は一度、コピーしてテキストエディタで整形してご覧ください。 Xcode 3.2では、静的アナライザが入りました。現時点ではObjective-CのコードとCのコードのみに対応しているようですが、ビルド時にメモリーリークを検出できるような雰囲気なので試してみました。 まずはこんな感じの100%リークするコードをわざと書いて検出できるのか試してみました。 int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; char* m = malloc(10); st

    Xcodeの静的アナライザ - アールケー開発
    watanata2000
    watanata2000 2010/11/19
    Objective-C メモリ管理 メモリリーク 静的アナライザ
  • Memory Management of Cocoa

    Cocoaのメモリ管理(1) Objective-Cを使用してCocoaプログラミングを行う上で、オブジェクトのメモリ管理は非常に重要な要素です。そこで最初のテーマとして、オブジェクトのメモリ管理を取り上げてみます。 さて、Cocoaにおけるオブジェクトのメモリ管理の枠組みは、その基盤をなすフレームワークであるFoundation Kitによって提供されています。ここに定義されるルートクラスNSObjectには、その枠組みを実現するための、いくつかのメソッドが用意されています。ここでは、それらのメソッドを紹介しながら、メモリ管理をいかにすべきかを学んでいきたいと思います。 オブジェクトの生成 オブジェクトの生成は、そのままそのオブジェクトのためにメモリを割り当てることです。Objective-Cには、JavaC++のようにコンストラクタというものは存在せず、クラスメソッド(Javaでいう

    watanata2000
    watanata2000 2010/11/19
    Objective-C メモリ管理
  • Objective-C 2.0プログラミング言語

    語ドキュメント 日語に翻訳されたデベロッパ向けのドキュメントです。 英語版の方が新しい場合がありますので、最新情報は英語版や英語ドキュメントページを確認して下さい。 App Store Connectヘルプ App Store Connectの使い方に関しての詳細やステップごとの使い方を確認できます。

    watanata2000
    watanata2000 2010/11/19
    Objective-C メモリ管理 Apple 本家 サイト
  • iPhoneSDK + ObjectiveCにおけるメモリ管理のはまり所 - mswar's はてなブログ

    まずは公式のObjectiveCのメモリ管理を読むべきである。(読まないと始まらない) http://developer.apple.com/jp/documentation/cocoa/Conceptual/ObjectiveC/4objc_runtime_overview/chapter_8_section_2.html そして、この辺が具体的なサンプルコードもあってよくまとまってる http://wwwa.dcns.ne.jp/~nito/CocoaClub/article01.html http://wwwa.dcns.ne.jp/~nito/CocoaClub/article02.html http://wwwa.dcns.ne.jp/~nito/CocoaClub/article03.html http://wwwa.dcns.ne.jp/~nito/CocoaClub/art

    iPhoneSDK + ObjectiveCにおけるメモリ管理のはまり所 - mswar's はてなブログ
    watanata2000
    watanata2000 2010/11/19
    Objective-C メモリ管理
  • Custom view with nib as subview doesn't seem to be loading

    watanata2000
    watanata2000 2010/11/19
    Interface Builder で定義した xib (nib) レイアウトをベースにプログラム内で UIView インスタンスを作成する方法
  • Paradigm Shift Design

    最近、私が小学生の頃から、お世話になっている和久内先生がYoutubeを始めるということで、撮影と編集を手伝っています。 先生のチャンネルは、こちらです。 和久内明 文化教養チャンネル「現代知の挑戦」 是非、ご覧ください。 できたらチャンネル登録してね。 はじめに 日記です。ログです。 超絶安易な気持ちで、安請け合い 動画を見ていただければわかるんですが、和久内先生がなんらかのテーマに基づいて全編ずっと話している動画なんですね。 で、撮影・編集で一番辛いのテロップを入れることなんですよ。 いやー、最初は軽い気持ちだったんです。 有名なYoutuber、 はじめしゃちょーとか、 ヒカルさんとか、 朝倉未来さんとか、 みてると、ちゃんと全文字起こしして、タイミング合わせて小気味よくテロップが出るんですよ。 音を出せない状況でもみられるように、ってことなのかな。どうなんだろう。 例えばこんな感

    Paradigm Shift Design
    watanata2000
    watanata2000 2010/11/19
    EXEC_BAD_ACCESS でバッグ方法
  • [Xcode] EXEC_BAD_ACCESSのデバッグ方法 | ミネルヴァの梟は黄昏とともに飛び始める(山下 大介 公式ブログ)

    EXEC_BAC_ACCESSとは、いわゆる不正なメモリアクセス(ポインタ操作)を行った際に発生するエラーである。通常は、解放済みの変数にアクセスしようとしたり、解放済みの変数をもう一度解放したりなどが、それにあたる。 ここ1週間Objective-Cを使ってみた感じでは、ポインタと言ってもゴリゴリとポインタの数値を直接操作する機会は無く、単に参照を持つというのに使うことがほとんどのようだ。 不正なメモリアクセスに関しては、ツールさえあれば原因を調べやすい類のバグなので安心して欲しい。ここでは、便利なデバッグオプションを紹介したいと思う。 Xcodeのメニューから「プロジェクト」-「アクティブな実行ファイル」を選び、「引数」タブにある「環境変数」に以下の4項目を設定すると原因は一目瞭然になる。

    watanata2000
    watanata2000 2010/11/19
    EXEC_BAD_ACCESS デバッグ 解析