2012-03-01から1ヶ月間の記事一覧

Incompatible pointer types sending

例えばUITextField*型のシグネチャに対してUITextView*型の変数をセットするとこの警告が出る。主にパラメタが要求している型と互換性が無い値をセットしているとコンパイラが判断した場合に出る警告だが、エラーではなく警告ってのが凄い。しかし、この警告…

Xcode 4 完全攻略

Xcode 4 完全攻略作者: STUDIO SHIN出版社/メーカー: ソフトバンククリエイティブ発売日: 2012/03/29メディア: 大型本購入: 2人 クリック: 41回この商品を含むブログ (8件) を見るXcodeの解説、それも4.xの日本語情報はまだまだ少ないので、欲しくなってしま…

Method SwizzlingでNull挿入パターンを実装する

NSMutableArray、NSMutableDictionary等のCocoa標準のコレクションクラスは要素にnilを許さない。 さすがにそれでは不便だろうということでNSNullオブジェクトが用意されておりnilの代わりに格納することができるのだが、要素がnilかどうかチェックしてから…

Xcode 4.3でスタティックリンクライブラリィを扱う (その2

さて、今日はアプリケーションからスタティックライブラリをリンクする設定を行う手順をまとめる。 外部のライブラリィを自分のプロジェクトに組込む等、普段はこちらのほうが有用だろうか。 2.アプリケーションプロジェクトでスタティックリンクライブラリ…

Xcode 4.3でスタティックリンクライブラリィを扱う (その1)

一度試して挫折するも、ちょっとしたことで上手くいったのでこれも備忘録としてメモ。iOSはMacのようにローダブルバンドル※1は扱えないので、外部のライブラリィはソースコードとして取り込むか、静的(スタティック)なライブラリィとして組み込むしか無い。 …

UITableView Tips

UITableViewを使用したプロトタイプをInterfaceBuilderで作っていたが、いくつかはViewController側にコードを書く必要があった。 参考にさせて頂いたサイトを紹介して、その点を備忘録としておく。 行を選択状態にしない 本来は属性"Show selection on touc…

WALL-E

公開当時(2008年)は見なかった。※その後気になっていていつか見ようと思っていたのだが、BSで放映すると知って喜び勇んで見た。 単にお話として面白いのもあるが、色々なSF映画のオマージュがちりばめられているのがとても楽しく、最後まで飽きずに見ること…

設定等の標準画面を開くURLはiOS5.1では使えない。

アプリケーションからシステム標準の設定画面、例えばネットワーク設定画面等を呼び出したいことがままある。 Androidの場合、こんな時は"ACTION_WIFI_SETTINGS"インテント一発でシステム画面を呼び出すことができる。iOSの場合はこんな芸当はできないだろう…

当選

以前に応募しておいたGALAXY Nexusプレミアムキャンペーンだが、先着ということもあり当選したようで、商品を送ってきた。内訳はこのオリジナル裏蓋とポケットチャージャー。 装着してみたが結構いい感じなので常用しようと思ったが、以前に書いたように普段…

実機の登録とデバッグ

さて、ある程度動く物が出来たので、いよいよ実機でテストしてみたいなと思った時、Androidであればなんの事前準備も必要無く、「提供元が不明のアプリケーションをインストール」にチェックをすることでアプリケーションを実機にインストールすることができ…

FirstResponderを探せ

Windowsの世界では「フォーカスを持つオブジェクト」という言い方をするが、Macの世界では「最初に応答するオブジェクト」という意味のFirstResponderを探したい場合がある。一番よく使われるのが現在処理対象になっているNSResponderの派生クラス(殆どのUI)…

Objective-Cの好きなところ

私は評論家ではなく開発者なので、Objective-Cの良い所(というか好きな所)も書いておこうと思う。 オブジェクト指向であること Objective-Cなのだから当たり前なのだが、継承、委譲、カプセル化、ポリモーフィズム等、他のオブジェクト指向言語と同様にオブ…

Objective-Cの一寸残念な所

2ヶ月程度Objective-Cを勉強してきたが、少しずつその特徴が見えてきた。 カテゴリやプロトコル等、素晴らしい点がたくさんあるのだが、同時にいくつかの残念だとと思う点も見えてきた。 C言語であること Objective-CはJavaやC#等のようにCのシンタクスをベ…

Locum?

Mac

久しぶりにMacBook Airにて「ゴミ箱を空にする」を実行した所、普段は殆ど音を発さないファンが全速で回りっぱなしになり、CPUが100%を超える(147%とかになってる!※)状態が続いた。ゴミ箱を空をするだけでこれはおかしいと思ってアクティビティモニタを見る…

Xcode 4.3.1

iOS5.1、話題の新iPadのRetinaにも対応しているバージョンが3/8にアップされている。変更点は Includes SDKs for Mac OS X 10.7 Lion and iOS 5.1 New code signing workflow supports signing OS X apps with Developer ID Adds installation of command-li…

XcodeによるGUIのオートメーションテスト

前回書いたようにXcodeはOCUnitによるObjective-Cのユニットテストを簡単に実行できる。ではGUIのテストはどうするのだろう。GUIのテストといっても、大きく分けて・実際にGUIを生成して操作を模したテスト(オートメーションテスト) ・GUIを模したモック(Moc…

Xcode(OCUnit)によるユニットテスト

XcodeはOCUnitによるObjective-Cのユニットテストに標準で対応しており、アプリケーション又はライブラリィ用のプロジェクトを作成する際に同時にテストプロジェクトを作りさえすれば、あとはテスト用のクラス簡単にユニットテストを開始することができる。…

AppCode 1.5

3/13にリリースされたAppCode 1.5を早速試してみた。 一番の興味は、私が問題としていた3つの不具合がFixされたかどうかである。 突然無応答になることがある コーディング中は無くなったが相変わらずデバッグ時などに無応答になる時間がある。しかし、今日…

JetBrains AppCode

InteliJ IDEA等、数々のIDE(統合開発環境)を提供してきたJetBrains社製のIDEがAppCodeだ。 JetBrains AppCode: an Objective-C IDE That Makes a DifferenceサポートするプラットホームはMac OS/Xネィティブ、つまりCocoaやiOSアプリケーションを開発するた…

安易さと習慣

Appleが提唱するObjective-Cのコーディングガイドラインではレシーバの属性などを返す単純なアクセッサや副作用の無い問い合せにはget〜のプレフィクスが不要だとある。 Coding Guidelines for Cocoa: Naming Methods - (NSSize)cellSize; //正しい - (NSSiz…

weakはどこに?

Xcode4.3だが、@propertyディレクティブのオプションに弱参照を表す"weak"があったはずなのに候補に全く出てこない。 @interface HogeClass : NSObject @property (nonatomic, strong) NSString* prop1 @property (nonatomic, w..| ) NSString* prop2 @end X…

黙祷

14:46 黙祷

idとdoubleの相互変換 (その2)

リファレンスのコードだったが、残念だがこれでは上手く行かない。テストしてみればわかるのだが、ivarにint型の値を設定した呼び出しだとテストが通るのだが、double等の実数だと想定したように値を読み書きできないのである。 ダンプで明らかになったが、_…

idとdoubleの相互変換

昨日はIvarの取得を行うコードに言及したが、同じようにIvarの設定を行う関数はruntimeのソースコードを元に以下のようなコーディングにした。 Ivar _object_setInstanceVariable(id obj, const char *name, void *value) { Ivar ivar = NULL; if (obj && na…

ドッグフード

エラー内容からARCが原因であることは間違い無い。引数の型がvoid**であることから、パラメタのオーナシップの移動に関してであろうことは想像に難くないが、「何故」駄目なのかをきちんと知りたいところ。 ランタイムAPIの一つ、インスタンスフィールド※を…

xcode-selectコマンドでXcodeのインストールディレクトリを変更する

Xcodeを4.2から4.3に上げた所xcodebuildやMacPorts、AppCode(評価中)が動作しなくなる現象が発生した。Xcodeにはxcode-selectというコマンドがあり上記のツールはこのコマンドの実行結果を使用しているが、Xcodeのインストール場所とパッケージが4.3で変わっ…

not available in automatic reference counting mode

現在、rutime.hを使って、それぞれ任意のメソッドを実行できる、任意のプロパティを読み書きできる、インスタンスフィールドを読み書きできるユーティリティをそれぞれ書いているのだが、最後に書いたインスタンスフィールドにアクセスするコードで、どうし…

variadic method (その3)

可変引数を使った任意のメソッドの呼び出しはようやく形になってきたが、C言語の経験値の低さ故にはまることが多い。同メソッドだが、引数の型に合わせてva_listから値を取り出さなくてはならないため、va_listをメソッド間で引き渡す必要が出てくる。 NSObj…

alloca (__builtin_alloca)

いくらCを完全に内包しているといっても、Objective-Cを使っている以上一行たりともCのコードは書きたくないのだが、ランタイムAPIを初めとしてそこかしこにCのコードがある以上、無視する訳にはいかないのが悲しい。自動変数でメモリバッファをいちいちアロ…

はてなブログPro

はてなブログPro - はてなブログ (beta)先週こんなお誘いのメールが来た。 いつもはてなダイアリープラスをご利用いただき、ありがとうございます。はてなは現在、はてなブログというサービスのベータ版を開発しています。 先日、「はてなブログPro」という…