タグ

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

  • Cocoaの日々: 10分でおぼえるBlocksの書き方

    iOS/iPhone/iPad/MacOSX プログラミング, Objective-C, Cocoaなど Blocksが使えるようになってはや数年。未だに書式が覚えられないわたし(あなた)の為に書き方をまとめてみた。 基型 戻り値 (^名前) (引数)(私が勝手に決めた)基型はこれ。これを覚えないことには始まらない。とにかくこれだけは覚える。 戻り値と引数は一般的なCの関数の書き方と同じなので、名前の書き方だけ (^名前) になったと覚えるのがいい。 (例)BOOL (^completion)(BOOL canceled) = ...;この基型を元に各場面でどう使うかを見ていく。 変数宣言・typedef宣言 変数宣言なら 戻り値 (^名前) (引数) = …;typedef宣言なら typedef 戻り値 (^名前) (引数);両方とも基型がそのまま使える。 (例)type

    Cocoaの日々: 10分でおぼえるBlocksの書き方
  • Cocoaの日々: アプリ EverGear をリリースしました

    Evernote投稿用アプリ「EverGear」をリリースしました。1つのノートに20枚の写真やメモを付けることができたり、ノートのひな形(テンプレート)を作るといった特徴を持つアプリです。 ※有料です。

    Cocoaの日々: アプリ EverGear をリリースしました
    ninjinkun
    ninjinkun 2012/05/18
  • Cocoaの日々: CoreData - マイグレーションを考慮した CoreDataManager パターン

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

    Cocoaの日々: CoreData - マイグレーションを考慮した CoreDataManager パターン
  • Cocoaの日々: [Info] iPhone版Safariのようなページ切替ビュー

    使い方は、まずHGPageScrollView を作りメインのビューへ貼る。 HGPageScrollView *pageScrollView = [[[NSBundle mainBundle] loadNibNamed:@"HGPageScrollView" owner:self options:nil] objectAtIndex:0]; [self.view addSubview:pageScrollView]; サンプルではページの定義を XIBファイルで行っていた。XIBで定義すれば容易にカスタマイズできる。 後は Data Source/Delegate を実装すればいい。 @protocol HGPageScrollViewDataSource @required // Page display. Implementers should *always* try to reu

    Cocoaの日々: [Info] iPhone版Safariのようなページ切替ビュー
  • Cocoaの日々: CALayer を使ってビューの内側に影を落とす

    CALayer を使うと簡単にビューに影を落とすことができる。 CALayer* layer = self.imageView1.layer; layer.shadowOffset = CGSizeMake(2.5, 2.5); layer.shadowColor = [[UIColor blackColor] CGColor]; layer.shadowOpacity = 0.5; ただこの方法はビューの外側に影を落とせても、ビューの内部には影を落とせない。 どうするか。 CALayer のプロパティを眺めていていると shadowPath に気がついた。このプロパティには CGPathRef を渡すことができる。 @property CGPathRef shadowPath;もしかしてこれを使って任意の場所や形で影が落とせないか。 試しにこんな矩形のパスを作って渡してみた。 CALay

    Cocoaの日々: CALayer を使ってビューの内側に影を落とす
  • 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 とは
  • Cocoaの日々: バッジ描画ライブラリを公開

    インストール GitHubからプロジェクトをダウンロードし、その中から下記のファイルを自分のプロジェクトへコピーして追加する。 LKBadgeView.m LKBadgeView.h 使い方 UIView のサブクラスなので生成してビューへ貼り付けるだけで使える。 (コード例) LKBadgeView* badgeView = [[[LKBadgeView alloc] initWithFrame:CGRectMake(100, 200, 50, 20)] autorelease]; [self.view addSubview:badgeView]; badgeView.text = @"23"; XIB に配置してそれを使ってもいい。サンプルアプリではこの方法を使っている。 @property (nonatomic, retain) IBOutlet LKBadgeView* badge

  • 1