24/7 twenty-four seven

iOS/OS X application programing topics.

2010-01-01から1年間の記事一覧

delegate オブジェクトは retain すべきではない

Delegating objects do not (and should not) retain their delegates. However, clients of delegating objects (applications, usually) are responsible for ensuring that their delegates are around to receive delegation messages. To do this, they…

UITableView で メール.app のような複数選択を実現する Undocumented API

UITableView の複数セルの選択は、実は Undocumented API として存在しています。 実装してもそれほど手間ではありませんし、審査に通るかどうかも不明なので、今のところ使いどころはないかもしれませんが、紹介します。 UITableViewDelegate に設定したク…

UIButton の隠し API

UIButton も buttonWithType: メソッドの引数に 100 以上の値を直接指定すると、非公開のボタンタイプを使用することができます。 100 〜 102: ナビゲーションバーのボタン (UINavigationButton) 100, 101, 102 を指定すると、ナビゲーションバーで使われて…

ツールバーのボタン (UIBarButtonItem) の隠し API

@iphone_dev_jp ツールバーとかタブバーによくある「現在地を表示」のボタン画像(あのライフルのスコープみたいなアイコンの)はシステム標準でないですよね。自分で作らないとダメなんですかね。 takoyaki0330 on Twitter: "@iphone_dev_jp ツールバーとか…

英辞郎 on the WEB for iPhone(アルク) 1.0.0 がリリースされました。

英辞郎 on the WEB for iPhone(アルク) 英辞郎 on the WEB for iPhone(アルク) が Apple の審査を通過しました。このアプリケーションは私が開発を担当しました。 検索結果のテキストを選択して、さらに検索したりメールのできる機能や、 入力補助のセル…

LCD Clock HD 1.0.0 がリリースされました。

LCD Clock HDはじめての iPad アプリケーション LCD Clock HD が Apple の審査を通過しました。iPhone アプリケーションとして販売中の LCD Clock の iPad アプリケーション版です。 アメリカでの iPad の発売に間に合わせるため、アラーム機能など未搭載の…

Xcode のプロジェクト名を変更するには

プロジェクト>名称変更... でいいらしい。 プロジェクトファイル名、ターゲット名、プリコンパイル済みヘッダ、Info.plist を一括で変更してくれます。 プロダクト名や、リンクマップファイルへのパス、ビルドディレクトリなど各種パスも、一度閉じて開き直…

リファレンスや定義を簡単に引ける Xcode のテクニック

Xcode で Option キー + メソッドやプロパティをダブルクリック、の機能が便利だったので、似たようなショートカットを調べてみました。 Option キー + ダブルクリック 対象のシンボルのリファレンスがポップアップする(便利!) Command キー + ダブルクリ…

iPhone シミュレータでボタンの2つ同時押しや、2本指スクロールをテストするには

iPhone シミュレータでオプション (option) キーを押しながらマウスを操作すると、2本指でのピンチイン、ピンチアウトのシミュレートができます。 さらに、オプション (option) + シフト (shift) を押すと、カーソルをその状態で固定したまま、平行に移動…

NSDictionary の objectForKey: と valueForKey: の違い

objectForKey: は NSDictionary のメソッドですが、 valueForKey: は KVC (Key Value-Coding) 由来のメソッドです。 If key does not start with “@”, invokes objectForKey:. If key does start with “@”, strips the “@” and invokes [super valueForKey:]…

CoreData で SQLite のデバッグログを出力するには

Analyzing Fetch Behavior with SQLite With Mac OS X version 10.4.3 and later, you can use the user default com.apple.CoreData.SQLDebug to log to stderr the actual SQL sent to SQLite. (Note that user default names are case sensitive.) For ex…

Objective-C における可変引数の実装方法

Q: How can I write a method that takes a variable number of arguments, like NSString's +stringWithFormat:? A: Methods that take variable arguments are known as variadic methods.Keep in mind that the implementation of an Objective-C method …

二重解放 (double free) や 解放済みオブジェクトへのアクセス (EXC_BAD_ACCESS) によるクラッシュを Instruments を使って調べる

iPhone アプリケーションのプログラミングでは、メモリ管理に注意する必要があります。 特に解放済みのオブジェクトをさらに解放してしまったり(二重解放)、解放済みのオブジェクトを操作しようとした場合は即座にアプリがクラッシュしてしまいます。 この…

大辞林.app のような UI のサンプル「FlipCardNavigationView」を公開しました。

kishikawakatsumi/FlipCardNavigationView · GitHub 西東京 iPhoneDev 勉強会にて、「PhotoFlipCardView」について、「画像の代わりに普通のビューを使うことはできないか」という指摘がありましたので、作ってみました。 このような画面が作れます。 やはり…

大辞林.app のように反転して拡大するフォトギャラリーのサンプル「PhotoFlipCardView」を公開しました。

kishikawakatsumi/PhotoFlipCardView · GitHub サムネイル画像が、クルッと反転しながらフルサイズの画像に拡大するというエフェクトがおもしろいフォトギャラリーのサンプルを公開しました。 エフェクトはまんま「大辞林.app」からのインスパイヤです。 つ…

NSTimer を使うアプリ(時計、ゲームなど)で Mobclix 広告を利用する場合の注意点

実は審査中の「カラー・ペアーズ」[YouTube]も思いがけないバグを提出後に発見した為、一度自分でリジェクトして提出し直しました。 そのバグとはプレイ中に表示していたmobclix広告から発生するものでした。 どういうバグかというと、このゲームは60秒か…

メインスレッド以外のスレッドから NSNotification で通知する場合

NSNotification の通知は、別スレッドから呼ぶと、そのスレッドで実行されるので、通知を受けて UI を更新するような場合、都合が悪いことがあります。 (UIKit は Thread Safe でないため) そういうときは、下記のようにメインスレッドから通知するといい…

本日(2010年1月13日)に初めてメールをくださった方へ

迷惑メールに分類されてしまって、消してしまったかもしれません。 ちゃんと確認できなかったので単なる迷惑メールかもしれませんが、もし、心当たりの方がいらっしゃいましたら、再送ください。 すでにメールをやりとりしている方のメールは、迷惑メールに…

Japan Subway Route Map(地下鉄路線図)2.1.1 がリリースされました。

Japan Subway Route Map(地下鉄路線図) 変更点は下記の通りです。 東京路線図の調整 名古屋路線図の調整 出口案内の情報を調整 出口案内で表示されない現象を修正 半蔵門線「九段下駅」 副都心線「明治神宮駅」 大江戸線「仲御徒町駅」 大江戸線「麻布十番…